首页 > 解决方案 > 如何找到每个id的最新日期和价格> 0?

问题描述

在 POSTGRESQL 13 中,我有一个 ID、日期、价格表。

我只想知道价格大于 0 每个 id 的最新日期。每个 id 一行。

所以最优输出是:

id | the_date | price
1   2013-08-09  0.45
2   2013-08-11  0.34

我在这个链接上有一个 SQL 小提琴: https ://dbfiddle.uk/?rdbms=postgres_13&fiddle=a89bbbc922601be5465ad764fd035161

我尝试使用 MAX 日期进行 INNER JOIN 失败。

标签: postgresql

解决方案


SELECT DISTINCT ON (id) 
  id, the_date, price
FROM inventory
WHERE price>0
ORDER BY id ASC, the_date DESC

推荐阅读