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

如何编写SQL查询实现每个产品名称仅返回日期最大的1条记录

SQL查询解决方案

你需要实现按ProductName分组,每组取date字段最大值对应的完整行,不同场景下的实现方案如下:

通用兼容写法(支持所有主流SQL数据库)

通过子查询先获取每个ProductName对应的最大date,再关联原表匹配完整记录:

SELECT t1.*
FROM your_table_name t1
INNER JOIN (
    SELECT ProductName, MAX(date) AS max_date
    FROM your_table_name
    GROUP BY ProductName
) t2 ON t1.ProductName = t2.ProductName AND t1.date = t2.max_date;

请将代码中的your_table_name替换为你实际使用的表名。

窗口函数写法(支持MySQL 8.0+、PostgreSQL、SQL Server、Oracle等支持窗口函数的数据库)

性能更优,写法更简洁:

SELECT ProductID, ProductName, Total, date
FROM (
    SELECT *,
           ROW_NUMBER() OVER (PARTITION BY ProductName ORDER BY date DESC) AS rn
    FROM your_table_name
) t
WHERE rn = 1;

补充说明:如果同一个ProductName存在多条date相同的最大值记录,若需要全部返回可以把ROW_NUMBER()替换为RANK();若需要按其他规则选唯一一条,可以在ORDER BY date DESC后追加其他排序字段,比如ORDER BY date DESC, ProductID DESC。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 09:57:03