簡體   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