You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL如何在满足LIKE条件时对两列结果执行分组查询

实现方案

根据你的业务需求,可选择以下两种实现方式:

方式1:按 from_fund + to_fund 组合分组

如果你需要将相同转出方+相同转入方的交易划分为同一组,直接在GROUP BY后追加to_fund字段即可。注意不要直接使用SELECT *,SQL规范要求SELECT后非聚合字段必须和GROUP BY的字段对应,建议明确指定查询字段和聚合逻辑,示例如下:

SELECT 
  from_fund,
  to_fund,
  COUNT(*) AS transaction_count,
  SUM(amount) AS total_transaction_amount
FROM ks_fund_transaction 
WHERE (from_fund  LIKE '%COIN%' OR to_fund  LIKE '%COIN%')  
GROUP BY from_fund, to_fund;

执行后你的样例数据会返回3组,分组键分别为(COIN SWITCH KUBER,KJSB)、(KJSB,COIN SWITCH KUBER)、(KJSB1,COIN SWITCH KUBER)。

方式2:合并统计COIN作为转入/转出方的对手方交易

如果你需要不管COIN是转出方还是转入方,都将同一交易对手的所有交易合并为一组,可以先将两列拆分为统一的对手方字段再分组,示例如下:

SELECT 
  counterparty,
  COUNT(*) AS transaction_count,
  SUM(amount) AS total_amount
FROM (
  -- COIN为转出方时,对手方为to_fund
  SELECT 
    to_fund AS counterparty,
    amount
  FROM ks_fund_transaction
  WHERE from_fund LIKE '%COIN%'
  UNION ALL
  -- COIN为转入方时,对手方为from_fund
  SELECT 
    from_fund AS counterparty,
    amount
  FROM ks_fund_transaction
  WHERE to_fund LIKE '%COIN%'
) AS temp
GROUP BY counterparty;

执行后你的样例数据会返回2组,分别对应交易对手KJSB(2笔交易,总金额10100)、KJSB1(1笔交易,总金额100)。

内容的提问来源于stack exchange,提问作者Sanket Thakkar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 02:24:00