最大日期行postgresql

Maximum date row postgresql

我想按产品找出具有最大日期的行,

我想找出行的最大日期 product_id

我试过DISTINCT,但是没成功!

这样做的一种规范方法是使用子查询来识别与每个产品 ID 的最大日期对应的记录,然后通过 INNER JOIN.[= 限制原始 table 12=]

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

另一种方法是通过 window 函数。

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