我有一張儲存時間,heart_rate和player_id的表格。我需要以某種方式取得最近五分鐘內的平均心率數據,並將每個平均值與球員ID進行分組。如何平均來自SQL數據庫的最後5分鐘條目?
回答
另一種選擇是使用DATEDIFF
SELECT AVG(heart_rate) AS heart_rate,
player_id
FROM tablename
WHERE DATEDIFF(MINUTE, time, GETDATE()) < 5
GROUP BY player_id
請勿使用'datediff()'。它計算兩次之間的分鐘數*。它不會測量兩次之間的分鐘數。 –
我喜歡你的答案使用DateAdd,並可能在99%的時間內使用該方法。但是,你能告訴我DateDiff會失敗嗎?這是一個性能問題還是一個精確問題? – JamieD77
這既是一個性能問題,也是一個精確問題。查詢之間的性能不能利用where子句的索引。精確度,因爲2014-12-31和2015-01-01(1天,可能爲1秒)之間爲1年,但2012-01-01和2012-12-31(365天)之間爲0年。分鐘會發生同樣的事情。 –
這部分是對多納爾的回答(太長的評論)的響應。
你做不要使用以下命令:
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;
- 1. 平均最近100 SQL數據庫的條目
- 2. 將1分鐘的數據彙總爲5分鐘的平均數據
- 3. Rails:創建後如何平均多個數據庫條目
- 4. 如何從SQL數據庫表中獲取最後5分鐘的記錄?
- 5. 如何計算條目的平均數目爲分組數據
- 6. 如何計算最後一分鐘的運行平均流量
- 7. 在給定時間內每5分鐘的平均數據量
- 8. 數據庫平均分(Django)
- 9. 顯示來自jquery rating插件數據庫的平均評分
- 10. 添加列分鐘,平均和最大的數據幀
- 11. 平均下來的平均數據列
- 12. 如何在SQL和小時分鐘的平均持續時間?
- 13. 移動過去的5分鐘的數據平均對每個蜱
- 14. SQL查詢來平均能量,每15分鐘
- 15. 來自數據庫的重複條目
- 16. SQL的分組平均數
- 17. 分鐘平均csv文件
- 18. 如何計算django中這些條目的平均分數?
- 19. 查找來自第5個百分點的平均值
- 20. SQL查詢來計算平均數據
- 21. 間隔5分鐘的時間爲15分鐘的時間間隔的平均數據
- 22. 最大5分鐘
- 23. 使用sql獲取最後的數據庫條目非常慢
- 24. 前5名的平均分數?
- 25. 將2分鐘的數據轉換爲15分鐘的平均值
- 26. 只選擇來自數據庫的最新條目
- 27. 顯示來自數據庫CakePHP的最後3條記錄
- 28. 高5分鐘平均負荷的奇怪情況
- 29. 從日期時間平均前5分鐘的時間間隔
- 30. 在mysql中計算5分鐘間隔的平均值
你被困在什麼地方?過濾器?平均?該團隊通過? –
我知道如何按玩家ID分組。給我帶來最大麻煩的部分是過濾器以及如何將平均值整合到其中。 –
請用你正在使用的數據庫標記你的問題。 –