簡體   English   中英

如何平均SQL數據庫中最近5分鍾的條目?

[英]How do I average the last 5 minutes of entries from a SQL database?

我有一個表,用於存儲時間,heart_rate和player_id。 我需要以某種方式獲取最近五分鍾的平均心率數據,並根據玩家ID對每個平均值進行分組。

另一種選擇是使用DATEDIFF

SELECT  AVG(heart_rate) AS heart_rate,
        player_id
FROM    tablename
WHERE   DATEDIFF(MINUTE, time, GETDATE()) < 5
GROUP BY player_id

這部分是對Donal回答的回應(對於評論太長了)。

希望使用下列內容:

WHERE datepart(minute, (time - GETDATE())) < 5

有兩個原因。 首先,這不能利用time索引。 即,該計算是不可估計的。 其次,除非time值在將來,否則減法是倒數。

一種更好的寫方法是:

select player_id, avg(heart_rate)
from table t
where time >= dateadd(minute, -5, getdate())
group by player_id;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM