我有每幾分鐘插入一次風速的表格。假設我想計算每天特定時間視窗的平均風速。
我可以使用 SQL 命令,例如
select ROUND(avg(data.wind),1) wind
FROM data
WHERE station in(109)
&& hour(data.datum)>=7
&& hour(data.datum)<= 8
group by month(data.datum), day(data.datum)
這很好用,但問題是我想使用基于日出時間的動態時間段。我找到了 SQL 函式來計算特定日期的日出時間,但我不知道如何在我的示例中使用 group by 中每一天的動態時間視窗。對于日出,我會使用https://github.com/curzon01/mysql_SunRiseSet 它使用類似的命令
select SunRiseSet(yyyy-mm-dd, 45.299, 13.571, 'nautical', 'rise');
例如,我希望范圍從日出 - 1 小時到日出 1 小時。這意味著
day1 7:20-8:20
day2 7:21-8:21
day3 7:23-8:23
etc.
這可以在一個命令中實作嗎?
uj5u.com熱心網友回復:
SELECT ROUND(AVG(data.wind), 1) AS wind
FROM data
WHERE station IN (109)
AND TIME_TO_SEC(TIMEDIFF(TIME(data.datum), SunRiseSet(data.datum, ...)))
BETWEEN -3600 AND 3600
GROUP BY MONTH(data.datum), DAY(data.datum);
我假設您可以將各個站點的坐標放入我離開的位置...。也許加入另一個存盤站點詳細資訊(例如位置)的表?
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/518130.html
標籤:mysql
