SQL从最后一天选择MAX值

时间:2013-11-20 22:27:32

标签: sql firebird

我有一个包含DateTime和Value列的表。我需要从最后一天(最近一天)选择最大值。我能想出的最好的是三步过程:

  1. SELECT MAX(DateTime) FROM MyTable
  2. 摆脱日期时间,商店日期
  3. 的时间部分
  4. SELECT MAX(Value) FROM MyTable WHERE DateTime>date
  5. 有更好的方法吗?

3 个答案:

答案 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
)