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

如何用嵌套SELECT语句去重,获取每位用户最新日期所属用户组

问题原因分析

你写的SQL无法得到预期结果的核心原因是分组规则错误:你按Name和Group两个字段分组,相当于同一个用户的不同Group归属记录被拆成了独立的分组,每个分组都会计算自身的最大日期,最终自然会返回所有Group对应的记录。

嵌套SELECT实现方案

通过子查询先拿到每个用户的最新日期,再关联原表匹配对应Group即可,写法如下:

SELECT t.ID, t.Name, t.`Group`, t.Date
FROM table_d t
INNER JOIN (
    -- 内层查询:按用户唯一ID分组,取每个用户的最新日期
    SELECT ID, MAX(Date) AS latest_date
    FROM table_d
    -- 保留原有的日期过滤条件,不需要统计2021年前的数据可保留,否则删除即可
    WHERE Date >= '20210101'
    GROUP BY ID
) t_latest ON t.ID = t_latest.ID AND t.Date = t_latest.latest_date
ORDER BY t.Name;

逻辑说明

  • 内层嵌套查询仅以用户唯一标识ID作为分组维度,计算得到每个用户的最新日期
  • 外层查询将原表和内层查询结果做关联,匹配到对应用户、且日期等于最新日期的记录,就能得到该用户最新归属的Group信息
  • 注意Group是SQL保留关键字,查询时需要用反引号包裹避免语法报错

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 17:06:05