获取给定日期表中的最新记录



我有一个包含列offer_iditem_idreport_date列的表(不是时间戳,只是日期(

我想获取该给定日期特定item_id的最新offer_id记录。

谁能帮忙?

我尝试了如下内容,但不确定是否正确,仍在学习:

SELECT A.report_dt, A.offer_id, A.item_id
FROM table A
WHERE A.rpt_dt = (SELECT MAX(rpt_dt)
FROM table
WHERE item_id = A.item_id
AND report_dt = date'2020-06-01')
ORDER BY item_id;

您可以使用窗口函数获取每个特定item_id的最新offer_id值,例如RANK()如下所示:

SELECT offer_id, item_id
FROM
(
SELECT t.*,
RANK() OVER (PARTITION BY item_id
ORDER BY report_dt DESC) AS rnk
FROM tab t
) tt  
WHERE tt.rnk = 1

其中report_dt值按降序(ORDER BY report_dt DESC(排序,用于子查询中的每个分组item_id(PARTITION BY item_id(。

最新更新