如何有效地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

解决方案

回答

看到类似的帖子

回答

我认为第二种方法非常有效。有什么问题

我们必须将索引添加到名称和日期。