如何设置子查询以获取具有最新日期和最大 ID 的单个记录?
Posted
技术标签:
【中文标题】如何设置子查询以获取具有最新日期和最大 ID 的单个记录?【英文标题】:How can I set subquery to get single records with latest date and maximum 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。
【问题讨论】:
【参考方案1】:只需使用distinct on
:
select distinct on (p_id) t.*
from mytable t
order by p_id, date desc, id desc
对于每个 p_id
,这将为您提供具有最大 date
的行。列id
用作决胜局。
【讨论】:
以上是关于如何设置子查询以获取具有最新日期和最大 ID 的单个记录?的主要内容,如果未能解决你的问题,请参考以下文章
无法在具有聚合值的 HAVING 子句中使用来自子查询表连接的单值列