2013-11-20 163 views
0

我有5年風數據,每10分鐘記錄一次數據。我必須得到平均值,最小值和每月的一些列的最大值,什麼從來就做得SQlite月平均值

SELECT avg(S10_AVG), MIN(S10_AVG), max(S10_AVG) 
FROM CP 
WHERE strftime('%Y', FECHA)='2008' and strftime('%m', FECHA)='01' 

是否有可能使這對每月和每年而不做60個不同的查詢?由於

回答

1

是的,你可以使用GROUP BY

SELECT strftime('%Y', FECHA), strftime('%m', FECHA), avg(S10_AVG), MIN(S10_AVG), max(S10_AVG) 
FROM @WindData 
GROUP BY strftime('%Y', FECHA), strftime('%m', FECHA) 
0
SELECT 
    STRFTIME('%Y', fecha) AS year, 
    STRFTIME('%m', fecha) AS month, 
    AVG(s10_avg) AS avg, 
    MIN(s10_avg) AS min, 
    MAX(s10_avg) AS max 
FROM cp 
GROUP BY STRFTIME('%Y', fecha), STRFTIME('%m', fecha) 
+0

運行完美,在不到一分鐘內迴應,但現在I'm有另一個問題,這個代碼的結果是2008年 7.84206989247312 \t \t 2.0 9,99 \t 02 6.74568965517241 \t \t 1.0 9,99 \t 03 5.49 014336917563 \t 1.0 \t平均完美但最大和最小錯誤。我認爲問題是使用逗號作爲十進制值 – user1181237

+0

嘗試上面的代碼,但使用'CAST(REPLACE(s10_avg,',','。'AS NUMERIC)''代替s10_avg'三次出現的每一個。 – pobrelkey