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

如何在WHERE语句中筛选各用户最新pkg_date对应的ID及package?

提取每个用户最新package记录的WHERE语句实现

针对你的数据集,要获取每个Name对应最新pkg_date的记录(Ann的20220205行、Lima的20220208行),可以用以下两种WHERE语句的实现方式:

方法一:使用IN子查询匹配用户-最新日期组合

SELECT ID, Name, pkg_date, package
FROM your_table
WHERE (Name, pkg_date) IN (
    SELECT Name, MAX(pkg_date)
    FROM your_table
    GROUP BY Name
);

逻辑说明:先通过子查询按Name分组,算出每个用户的最新pkg_date;主查询的WHERE条件直接匹配Name和对应最新日期的组合,筛选出目标记录。

方法二:关联子查询匹配单用户最新日期

如果你的SQL环境不支持行构造器(即(Name, pkg_date) IN这种写法),可以用这种关联子查询的方式:

SELECT ID, Name, pkg_date, package
FROM your_table t1
WHERE pkg_date = (
    SELECT MAX(pkg_date)
    FROM your_table t2
    WHERE t2.Name = t1.Name
);

逻辑说明:对主表的每一行t1,子查询会找到同Name下的最大pkg_date,当t1的pkg_date等于这个最大值时,该行就会被选中。

两种方法最终都会返回以下结果:

IDNamepkg_datepackage
11Ann20220205R
22Lima20220208A

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 07:22:53