如何从PostgreSQL中的表中使用中获取唯一的最新项 脚本 +--------+-------+------------+ |项目|价格|日期| +--------+-------+------------+ |苹果公司| 31 | 2019-09-11| |香蕉| 11 | 2019-09-11| |香蕉| 13.23 | 2019-10-12| |苹果公司| 30.1 | 2019-10-12| |香蕉| 12.77 | 2019-10-31| |苹果公司| 32 | 2019-11-28| |香蕉| 15.6 | 2019-11-02| |香蕉| 12.8 | 2019-12-18| |苹果| 33.45 | 2020-01-12| |香蕉| 16.78 | 2020-01-21| |苹果| 31.5 | 2020-01-27| |香蕉| 14.4 | 2020-02-17| |香蕉| 13.2 | 2020-03-12| +--------+-------+------------+

如何从PostgreSQL中的表中使用中获取唯一的最新项 脚本 +--------+-------+------------+ |项目|价格|日期| +--------+-------+------------+ |苹果公司| 31 | 2019-09-11| |香蕉| 11 | 2019-09-11| |香蕉| 13.23 | 2019-10-12| |苹果公司| 30.1 | 2019-10-12| |香蕉| 12.77 | 2019-10-31| |苹果公司| 32 | 2019-11-28| |香蕉| 15.6 | 2019-11-02| |香蕉| 12.8 | 2019-12-18| |苹果| 33.45 | 2020-01-12| |香蕉| 16.78 | 2020-01-21| |苹果| 31.5 | 2020-01-27| |香蕉| 14.4 | 2020-02-17| |香蕉| 13.2 | 2020-03-12| +--------+-------+------------+,sql,postgresql,greatest-n-per-group,Sql,Postgresql,Greatest N Per Group,我有一个prices表,我正在使用下面的SQL查询从中获取100多种水果中香蕉和苹果的价格 选择* 从价格 其中项目位于('apple','banana') 按日期说明订购 限制2; 问题 这个查询返回整个表中最后两个价格,这两个价格都是针对香蕉的。不过,我想知道苹果和香蕉的最新价格 预期 +--------+-------+------------+ |苹果| 31.5 | 2020-01-27| |香蕉| 13.2 | 2020-03-12| +--------+-------+-----

我有一个prices表,我正在使用下面的SQL查询从中获取100多种水果中香蕉和苹果的价格

选择*
从价格
其中项目位于('apple','banana')
按日期说明订购
限制2;
问题 这个查询返回整个表中最后两个价格,这两个价格都是针对香蕉的。不过,我想知道苹果和香蕉的最新价格

预期
+--------+-------+------------+
|苹果| 31.5 | 2020-01-27|
|香蕉| 13.2 | 2020-03-12|
+--------+-------+------------+
现在的
+--------+-------+------------+
|香蕉| 14.4 | 2020-02-17|
|香蕉| 13.2 | 2020-03-12|
+--------+-------+------------+

如何实现这一点?

在上使用
distinct:

SELECT DISTINCT ON (p.item) p.* 
FROM prices p
WHERE item IN ('apple', 'banana')
ORDER BY p.item, p.date DESC

嘿,戈登,非常感谢:)谢谢,一匹没有名字的马,甚至从文档中也看不出格式。也许我们需要更好的例子