给定以下表格格式...
id | date | value
___|____________|______
11 | 2010-01-01 | 50
11 | 2010-01-02 | 100
12 | 2010-01-01 | 150
12 | 2010-01-02 | 200
... 我需要选择与指定日期的最大值
相对应的id
。到目前为止,我想出如何做到这一点的唯一方法是使用如下子查询:
SELECT id
FROM table
WHERE date = '2010-01-01'
AND value = (
SELECT MAX(value)
FROM table
WHERE date = '2010-01-01'
GROUP BY date
)
在一个有大约 70,000 条记录的表上,主键在 id
和 date
上,执行需要大约 0.25 秒,这对我来说似乎很长。有没有更快的方法让我达到相同的结果?
谢谢。
最佳答案
SELECT TOP 1 id FROM table WHERE date = '2010-01-01' ORDER BY value DESC
关于sql - 根据条件选择 MAX() 的更简单方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3191555/