如何有效地SQL从MySQL数据库中选择最新条目?
时间:2020-03-05 18:50:36 来源:igfitidea点击:
Possible Duplicate: SQL Query to get latest price
我有一个包含股价历史记录的数据库。我想为列出的每个股票选择最新价格。我知道PostreSQL的DISTINCT ON语句非常适合这里。
表列是"名称"," closingPrice"和"日期";名称和日期一起形成唯一索引。
最简单(且非常无效)的方法是
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;
有什么有效的方法可以做到这一点?我应该创建什么索引?
duplicate of: SQL Query to get latest price
解决方案
回答
看到类似的帖子
回答
我认为第二种方法非常有效。有什么问题
我们必须将索引添加到名称和日期。