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

如何用SQL获取指定两列(ID、value)的唯一值?

提取ID和value列的唯一值方案

问题根源

你之前用SELECT DISTINCT没达到预期,大概率是把第三列也包含在查询里了——数据库会把所有选中列的组合完全相同才判定为重复,第三列的不同值会让ID+value相同的行被当成不同结果。

直接获取ID+value唯一组合

如果只需要ID和value的唯一配对,直接指定这两列用DISTINCT即可:

SELECT DISTINCT ID, value
FROM 你的表名;

需保留第三列时的处理

如果要保留每组ID+value对应的某一行(比如取第三列的最新/最大值),可以用两种方式:

  1. GROUP BY + 聚合函数
SELECT ID, value, MAX(第三列名) AS 第三列名
FROM 你的表名
GROUP BY ID, value;

这里用MAX()取第三列的最大值,换成MIN()、LAST_VALUE()等可根据需求调整。

  1. 窗口函数筛选唯一行
    如果需要更灵活的筛选规则(比如按第三列排序后取第一行),用窗口函数:
WITH 分组排序 AS (
    SELECT 
        ID, 
        value, 
        第三列名,
        ROW_NUMBER() OVER (PARTITION BY ID, value ORDER BY 第三列名 DESC) AS 行号
    FROM 你的表名
)
SELECT ID, value, 第三列名
FROM 分组排序
WHERE 行号 = 1;

ORDER BY 第三列名 DESC可以改成你需要的排序规则,比如按时间排序取最新的。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 02:35:58