【问题标题】:How can I set subquery to get single records with latest date and maximum id?如何设置子查询以获取具有最新日期和最大 ID 的单个记录?
【发布时间】:2020-11-15 12:52:52
【问题描述】:

我需要设置一个查询,作为结果获取一个表,其中包含来自主表的特定列值的单个记录,每条记录必须具有最新日期,如果最新日期在多条记录中相同,我只需要具有最大 id 的一条记录。

到目前为止,我正在使用

Select id, p_id, max(date), column1, etc
From table
Group by p_id

但我需要另一部分为 p_id 提供单个记录,每个记录都包含最新日期和最大 ID。

【问题讨论】:

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


    【解决方案1】:

    只需使用distinct on:

    select distinct on (p_id) t.*
    from mytable t
    order by p_id, date desc, id desc
    

    对于每个 p_id,这将为您提供具有最大 date 的行。列id 用作决胜局。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-01-25
      • 2023-01-22
      • 2020-12-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-10
      相关资源
      最近更新 更多