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

SQL查询如何获取每个条目对应的最大日期 实现条目去重展示

解决方案

基础写法(仅需产品ID+最近下单日期)

你原SQL缺少GROUP BY子句,调整后即可实现每个产品仅返回一条最近下单日期记录:

select 
    product_id,
    max(date_ordered) as latest_order_date
from products
group by product_id

之前使用GROUP BY仍出现重复产品的常见原因:你大概率在GROUP BY后附加了其他非聚合字段,或者在SELECT列表里加了不属于GROUP BY也没有用聚合函数包裹的字段,导致分组维度变细,同一个产品ID会被拆分成多条记录。仅保留GROUP BY product_id即可解决该问题。

进阶写法(需获取最近下单日期对应的完整行数据)

如果你还需要同时获取该产品最近下单日期对应的其他字段(比如订单号、下单用户等),可以使用窗口函数实现:

with product_order_rn as (
    select 
        *,
        row_number() over(partition by product_id order by date_ordered desc) as rn
    from products
)
select * from product_order_rn where rn = 1

该写法会按产品ID分组,每组内按下单日期倒序排序,取排序后的第一条记录,即为每个产品最近的下单记录。如果需要保留同一个产品同一天的多条下单记录,把row_number()替换为rank()即可。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 00:36:01