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

无需MAX查询或降序输出,获取对应最多去重学者的研究方向

解决方法:统计唯一学者数并获取Top研究兴趣

嘿,你的思路方向是对的,问题出在统计学者数量的时候没做去重处理!原SQL里的count(*)会把同一个acnum关联的多条descrip记录都算进去,而我们需要的是每个descrip对应的唯一学者数。

直接修改你的SQL,把count(*)换成count(distinct acnum)就可以解决重复统计的问题了,完整语句如下:

SELECT x.descrip, x.unique_scholar_count
FROM (
    SELECT 
        u.descrip, 
        COUNT(DISTINCT u.acnum) AS unique_scholar_count,
        RANK() OVER (ORDER BY COUNT(DISTINCT u.acnum) DESC) AS rank
    FROM interest u 
    WHERE u.descrip IS NOT NULL 
    GROUP BY u.descrip
) x 
WHERE x.rank = 1;

关键说明:

  • COUNT(DISTINCT u.acnum):确保每个学者(唯一acnum)只被统计一次,不管他关联了多少次同一个descrip
  • 用RANK()函数可以自动给研究兴趣按学者数量排序,最后筛选rank=1就能得到拥有最多学者的研究兴趣(如果有多个descrip学者数相同且都是最多,会一起返回)
  • 整个过程没有用MAX函数,也不需要对最终结果做降序输出,完全符合你的要求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 04:10:45