2013-11-20 126 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