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

SQL中能否仅对name、name2列执行DISTINCT去重同时返回全部三列

这个需求完全可以在SQL中实现,常用的实现方案有两种:

方案1:使用GROUP BY分组聚合(最通用)

直接按需要去重的name、name2两列分组,对id列取最大值即可,所有支持标准SQL的数据库都兼容该写法:

SELECT MAX(id) AS id, name, name2
FROM 你的实际表名
GROUP BY name, name2;

方案2:使用窗口函数ROW_NUMBER()(扩展性更强)

如果后续需求扩展,需要同时取同组内其他字段的值,或者需要自定义分组内的排序规则,可以用窗口函数实现:

SELECT id, name, name2
FROM (
    SELECT 
        id, name, name2,
        -- 按name、name2分组,组内按id倒序排序,排名第一的就是id最大的行
        ROW_NUMBER() OVER (PARTITION BY name, name2 ORDER BY id DESC) AS rank_num
    FROM 你的实际表名
) AS temp_table
WHERE rank_num = 1;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 00:45:00