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

如何使用row_number()获取内查询count最高及指定排名的src_cd

实现方案

你可以通过嵌套子查询加ROW_NUMBER()窗口函数的方式实现需求,既可以取最大cnt对应的src_cd记录,也可以灵活调整筛选条件取任意排名的结果,完整SQL如下:

SELECT t1.*
FROM table1 t1
INNER JOIN (
    SELECT 
        src_cd,
        ROW_NUMBER() OVER(ORDER BY COUNT(*) DESC) AS rk
    FROM innertable1
    GROUP BY src_cd
) stat ON t1.src_cd = stat.src_cd
WHERE stat.rk = 1;

使用说明

  • 子查询先对innertable1按src_cd分组统计,同时按照统计的cnt值降序生成不重复的连续排名rk
  • 按照你给出的统计示例,上述语句执行后会返回table1中所有src_cd为CCC的记录,和需求匹配
  • 要取第几大cnt对应的src_cd记录,只需要修改WHERE条件里的rk值即可:取第二大改rk=2,取第三大改rk=3
  • 如果需要cnt值相同的记录排名一致,可以把ROW_NUMBER()替换为RANK()或DENSE_RANK()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 16:24:03