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

Oracle SQL按TRAN分组后取计数最高的对应TRAN值实现方法

Oracle SQL 实现代码

你可以直接用GROUP BY + HAVING的分组过滤逻辑实现需求,语句如下:

SELECT TRAN
FROM CROSS_REF
GROUP BY TRAN
HAVING COUNT(*) > 1;

逻辑说明

  • 首先通过GROUP BY TRAN按照TRAN字段对表数据做分组,相同TRAN值的行会被聚合到同一个分组中
  • COUNT(*)统计每个分组的行数,HAVING子句对聚合后的分组做过滤,只保留行数大于1的分组,刚好匹配你需要的计数为2的TRAN=10的记录
  • 最终返回符合条件的TRAN字段值即可

如果后续需要同时返回对应分组的其他关联字段,可以改用窗口函数实现:

SELECT DISTINCT TRAN
FROM (
    SELECT 
        TRAN,
        COUNT(*) OVER(PARTITION BY TRAN) AS cnt
    FROM CROSS_REF
) t
WHERE cnt > 1;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 23:57:03