简体   繁体   English

SQL从前一天选择最大值

[英]SQL select MAX value from last day

I have a table with DateTime and Value columns. 我有一个带有DateTime和Value列的表。 I need to select max value from the last day (newest) day. 我需要从最后一天(最新)中选择最大值。 The best I could come up with is 3 step process: 我能想到的最好的方法是三个步骤:

  1. SELECT MAX(DateTime) FROM MyTable
  2. get rid of time part in datetime, store date 摆脱日期时间,存储日期中的时间部分
  3. SELECT MAX(Value) FROM MyTable WHERE DateTime>date

Is there a better way to do this? 有一个更好的方法吗?

Your three steps in one query would be 一个查询中的三个步骤是

SELECT MAX(Value)
FROM MyTable
WHERE DateTime >= CAST( (SELECT MAX(DateTime)FROM MyTable) AS DATE)

Now finding the max date could be quite expensive query so if you're actually after the yesterday's max value then you should use CURRENT_DATE instead, ie 现在,查找最大日期可能是一个非常昂贵的查询,因此,如果您实际上是在昨天的最大值之后,则应改用CURRENT_DATE ,即

WHERE DateTime >= ( CURRENT_DATE - 1 ) AND DateTime < CURRENT_DATE

If you mean the highest value of today , then you can use: 如果您指的是今天的最高价值,那么您可以使用:

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

Can you just do this? 你能做到吗?

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