可能是重复的问题:
SQL查询以获取最新价格
我有一个包含股票价格历史记录的数据库。我想选择每个上市股票的最新价格。我知道PostreSQL有一个DISTINCT ON语句,非常适合这里。
表列是name
,closingPrice
和date
;name
和date
共同形成唯一索引。
最简单(但非常低效)的方法是
SELECT * FROM stockPrices s
WHERE s.date =
(SELECT MAX(date) FROM stockPrices si WHERE si.name = s.name);
我发现更好的方法是:
SELECT *
FROM stockPrices s JOIN (
SELECT name, MAX(date) AS date
FROM stockPrices si
GROUP BY name
) lastEntry ON s.name = lastEntry.name AND s.date = lastEntry.date;
如何高效地完成这个任务?我应该创建哪些索引?
重复问题:
SQL查询以获得最新价格