SQL查询(Count)

时间:2016-02-16 23:12:53

标签: sql sql-server

这个问题令我感到困惑。

我有一个包含几列的表格。其中两列为“月”和“年”,其中​​月份为1,2,3,12,年份为2016年,2015年,2014年等。

我需要创建一个查询,它将按季度返回年度所有记录的总数。所以'如果月份= 1,2,3'则季度为1'并且每年都这样做。

理想情况下,我希望使用以下记录返回查询:

Year,YearCount,Q1Count,Q2Count,Q3Count和Q4Count

有意义吗?任何想法都会有所帮助。使用SQL Server 2008,如果这很重要。

1 个答案:

答案 0 :(得分:3)

我想这会起作用

Select 
     Year
    ,Count(id) 'YearCount'
    ,SUM(CASE WHEN MONTH IN (1,2,3) THEN 1 ELSE 0 END) 'Q1 COUNT'
    ,SUM(CASE WHEN MONTH IN (4,5,6) THEN 1 ELSE 0 END) 'Q2 COUNT'
    ,SUM(CASE WHEN MONTH IN (7,8,9) THEN 1 ELSE 0 END) 'Q3 COUNT'
    ,SUM(CASE WHEN MONTH IN (10,11,12) THEN 1 ELSE 0 END) 'Q4 COUNT'

 FROM TABLE
 GROUP BY Year