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

SQL查询各州最高收入对应县并列结果处理问题咨询

结论

仅添加SELECT DISTINCT无法实现你要的效果。

原因

DISTINCT的作用是对查询返回的整行字段组合去重,你现有语句查询IL州的最高收入记录时,会返回两行完全不同的结果:

STATECOUNTYMAX_INCOME
ILCOOK1000
ILLAKE1000

两行的COUNTY字段值不同,不属于重复行,因此加DISTINCT后这两条记录都会被保留,依然不符合预期。

正确实现方案

可以使用窗口函数ROW_NUMBER()实现需求,兼容绝大多数主流数据库(MySQL8.0+、PostgreSQL、SQL Server等):

SELECT STATE, COUNTY, INCOME
FROM (
    SELECT 
        STATE,
        COUNTY,
        INCOME,
        -- 按州分组,组内先按收入降序,收入相同则按县名字母升序排序
        ROW_NUMBER() OVER(PARTITION BY STATE ORDER BY INCOME DESC, COUNTY ASC) AS rank_num
    FROM `table`
) AS temp
WHERE rank_num = 1;

上述逻辑中,收入相同的县按名字排序后取第一个,刚好符合你给出的预期结果(IL州取COOK)。如果后续需要保留所有并列最高的县,把ROW_NUMBER()替换为RANK()即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 04:15:03