我有一个包含DateTime和Value列的表。我需要从最后一天(最近一天)选择最大值。我能想出的最好的是三步过程:
SELECT MAX(DateTime) FROM MyTable
SELECT MAX(Value) FROM MyTable WHERE DateTime>date
有更好的方法吗?
答案 0 :(得分:2)
一个查询中的三个步骤是
SELECT MAX(Value)
FROM MyTable
WHERE DateTime >= CAST( (SELECT MAX(DateTime)FROM MyTable) AS DATE)
现在找到最大日期可能是非常昂贵的查询,所以如果你实际上是在昨天的最大值之后,那么你应该使用CURRENT_DATE
代替,即
WHERE DateTime >= ( CURRENT_DATE - 1 ) AND DateTime < CURRENT_DATE
答案 1 :(得分:1)
如果您的意思是今天的最高值,那么您可以使用:
SELECT MAX(value)
FROM MyTable
WHERE CAST(DateTime AS DATE) = CURRENT_DATE
答案 2 :(得分:0)
你能这样做吗?
SELECT MAX(Value)
FROM MyTable
WHERE DateTime IN (
SELECT MAX(DateTime)
FROM MyTable
)