2013-12-20 2 views
0

У меня есть db с многолетней температурой окружающей среды, мне нужно сделать среднюю температуру с каждого месяца с 06:00 до 20:00 (день) и ночь. То, что я уже сделал, этоСредние дневные и ночные значения SQlite

SELECT 
    STRFTIME('%Y', fecha) AS year, 
    STRFTIME('%m', fecha) AS month, 

    AVG(T10_AVG) AS Temp_prom, 
    FROM GER 
GROUP BY STRFTIME('%Y', fecha), STRFTIME('%m', fecha) 

Но я не знаю, как включить дневные и ночные средние значения.

+0

В том же запросе? Каков формат 'fecha'? –

+0

Является ли тот же запрос, формат fecha - yyyy-mm-dd, а в другом столбце у меня есть регистр часов – user1181237

ответ

0

Если вы хотите получить эти средние значения в одной записи ежемесячного выпуска, вы не можете добавить еще один столбец GROUP BY. Вы должны вычислить эти значения с помощью отдельных подзапросов:

SELECT strftime('%Y', fecha) AS year, 
     strftime('%m', fecha) AS month, 
     (SELECT AVG(T10_AVG) 
     FROM Ger AS g2 
     WHERE g2.fecha GLOB strftime('%Y-%m*', Ger.fecha) 
      AND (g2.hour >= '06' AND g2.hour < '20') 
     ) AS avg_day, 
     (SELECT AVG(T10_AVG) 
     FROM Ger AS g2 
     WHERE g2.fecha GLOB strftime('%Y-%m*', Ger.fecha) 
      AND (g2.hour < '06' OR g2.hour >= '20') 
     ) AS avg_night, 
     AVG(T10_AVG) AS Temp_prom 
FROM Ger 
GROUP BY year, month 
+0

Работал отлично, спасибо большое! – user1181237

Смежные вопросы