Требуется 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