Требуется SQL: сумма по значениям по месяцам
У меня есть таблица со значениями, такими как:
count1 count2 count3 month
12 1 4 01/12/2011
6 5 4 23/12/2011
14 6 9 11/06/2011
8 5 4 19/06/2011
Как получить следующие результаты?
count1 count2 count3 month
18 6 8 12
22 11 13 06
Ответы
Ответ 1
SELECT SUM(count1), SUM(count2), SUM(count3), MONTH(month)
FROM myTable
GROUP BY MONTH(month)
Так как MONTH
является ключевым словом SQL Server, вам может потребоваться избежать имени столбца MONTH
(например, [month]
), если вы так называете столбец даты. (Спасибо Энди за этот комментарий!)
Кроме того, если выбранные данные занимают более одного года, вам, вероятно, придется группировать и год:
SELECT SUM(count1), SUM(count2), SUM(count3), MONTH(month), YEAR(month)
FROM myTable
GROUP BY MONTH(month), YEAR(month)
Ответ 2
уменьшить нагрузку на запрос
SELECT SUM(count1), SUM(count2), SUM(count3), substring(month,4,2)
FROM myTable
GROUP BY substring(month,4,2)
Ответ 3
SELECT SUM(count1), SUM(count2), SUM(count3), MONTH(month)
FROM Table
GROUP BY trunc(month,'mm')
Это будет запущено в PL/SQL-разработчике:)
Ответ 4
SELECT
SUM(count1) as sum_count1,
to_char(month, 'yyyy-MM') as month
FROM
dataframe
GROUP BY
month