【问题标题】:Maximum date row postgresql最大日期行 postgresql
【发布时间】:2016-11-24 10:07:55
【问题描述】:

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

我想通过 product_id 找出行的最大日期

我尝试了 DISTINCT 但无法成功!

【问题讨论】:

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


【解决方案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

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

【讨论】:

    【解决方案2】:
    select * from (
       SELECT *, row_number() over (partition by Product_ID order by date desc) r 
       FROM table 
    ) T
    WHERE T.r=1
    

    【讨论】:

    • 很好的答案!它真的很有帮助
    • 欢迎@RohanNayani,如果它可以帮助您将标记为答案
    猜你喜欢
    • 2021-01-29
    • 2022-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多