最大日期行postgresql

时间:2016-11-24 10:07:56

标签: sql postgresql greatest-n-per-group

我想查找按产品划分的最大日期行

click to see table

我想通过product_id

找出行的最大日期

click here to see what i want

我尝试过DISTINCT但是不能成功!

2 个答案:

答案 0 :(得分:1)

执行此操作的一种规范方法是使用子查询来标识与每个产品ID的最大日期对应的记录,然后通过INNER JOIN限制原始表。

SELECT t1.*
FROM yourTable t1
INNER JOIN
(
    SELECT PRODUCT_ID, MAX(DATE) AS DATE
    FROM yourTable
    GROUP BY PRODUCT_ID
) t2
    ON t1.PRODUCT_ID = t2.PRODUCT_ID AND
       t1.DATE       = t2.DATE

另一种方法是通过窗口函数。

答案 1 :(得分:0)

select * from (
   SELECT *, row_number() over (partition by Product_ID order by date desc) r 
   FROM table 
) T
WHERE T.r=1