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

Oracle数据库可互换收发ID对的交易数量分组统计实现方法

可互换对等ID对交易总数统计SQL实现

实现思路

  • 核心逻辑是将无序的收发方ID对转换为固定顺序的分组标识:始终把两个ID中较小的作为第一分组字段、较大的作为第二分组字段,这样(SENDER=A, RECEIVER=B)和(SENDER=B, RECEIVER=A)会被归为同一分组
  • 按固定顺序的两个ID字段分组后,直接统计分组内的交易记录数即可得到对应ID对的总交易量,最终输出的收发方顺序可按需调整

高兼容SQL写法(支持所有主流SQL数据库)

SELECT 
  CASE WHEN SENDER < RECEIVER THEN SENDER ELSE RECEIVER END AS SENDER,
  CASE WHEN SENDER > RECEIVER THEN SENDER ELSE RECEIVER END AS RECEIVER,
  COUNT(*) AS "TRANSACTION COUNT"
FROM 交易表名
GROUP BY 
  CASE WHEN SENDER < RECEIVER THEN SENDER ELSE RECEIVER END,
  CASE WHEN SENDER > RECEIVER THEN SENDER ELSE RECEIVER END;

如果需要输出的收发方顺序为较大值在前、较小值在后,只需交换SELECT语句中两个字段的取值逻辑即可。

简化写法(兼容Oracle、MySQL、PostgreSQL等支持LEAST/GREATEST函数的数据库)

SELECT 
  LEAST(SENDER, RECEIVER) AS SENDER,
  GREATEST(SENDER, RECEIVER) AS RECEIVER,
  COUNT(*) AS "TRANSACTION COUNT"
FROM 交易表名
GROUP BY LEAST(SENDER, RECEIVER), GREATEST(SENDER, RECEIVER);

效果说明

针对提供的示例数据执行上述语句后,会得到完全符合要求的输出:

SENDERRECEIVERTRANSACTION COUNT
123456784
567898762

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 07:39:04