需要SQL:按月汇总值

hap*_*ile 13 sql-server sql-server-2005

我有一个像这样的值的表:

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
Run Code Online (Sandbox Code Playgroud)

我如何获得以下结果?

count1   count2  count3  month
18        6       8       12
22        11      13      06
Run Code Online (Sandbox Code Playgroud)

Hei*_*nzi 22

SELECT SUM(count1), SUM(count2), SUM(count3), MONTH(month)
  FROM myTable
 GROUP BY MONTH(month)
Run Code Online (Sandbox Code Playgroud)

由于MONTH是SQL Server关键字,您可能必须转义列名称month(例如[month]),如果您的日期列实际上是这样调用的.(感谢恩迪的评论!)

此外,如果选择的数据跨度超过一年,您可能还需要按年分组:

SELECT SUM(count1), SUM(count2), SUM(count3), MONTH(month), YEAR(month)
  FROM myTable
 GROUP BY MONTH(month), YEAR(month)
Run Code Online (Sandbox Code Playgroud)

  • 您可能希望将该列名称转义为[月] (3认同)