繁体   English   中英

SQL从前一天选择最大值

[英]SQL select MAX value from last day

我有一个带有DateTime和Value列的表。 我需要从最后一天(最新)中选择最大值。 我能想到的最好的方法是三个步骤:

  1. SELECT MAX(DateTime) FROM MyTable
  2. 摆脱日期时间,存储日期中的时间部分
  3. SELECT MAX(Value) FROM MyTable WHERE DateTime>date

有一个更好的方法吗?

一个查询中的三个步骤是

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

如果您指的是今天的最高价值,那么您可以使用:

SELECT MAX(value)
FROM MyTable
WHERE CAST(DateTime AS DATE) = CURRENT_DATE

你能做到吗?

SELECT MAX(Value)
FROM MyTable
WHERE DateTime IN (
    SELECT MAX(DateTime)
    FROM MyTable
)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM