2014-02-20 122 views
1

我想按星期和月份分組數據。說我想找到(所有周日在二月體積之和)(體積爲Januray所有周日總和)+ + ......我是什麼樣的按星期和月份分組

select CONVERT(VARCHAR(10),date,111), 
     DATENAME(weekday,date) as Weekday, 
     DATEPART(month,date) as Month, 
     DATEPART(year,date) as year, 
     sum(volume) 
    from traffic_data_replica 
group by CONVERT(VARCHAR(10),date,111), 
     DATENAME(weekday,date), 
     DATEPART(month,date), 
     DATEPART(year,date) 
order by DATEPART(year,date), 
     CONVERT(VARCHAR(10),date,111), 
     DATEPART(month,date), 
     DATENAME(weekday,date) ; 

但是,這不是想要的結果,我想:(

回答

3

要包括的組通過(該CONVERT(VARCHAR(10),date,111))在實際的日期,這樣的日子是聚集程度嘗試是這樣的:

SELECT Year(date), 
     Month(date), 
     Datename(weekday, date) AS Weekday, 
     Sum(volume) 
FROM traffic_data_replica 
GROUP BY Year(date), 
      Month(date), 
      Datename(weekday, date) 
ORDER BY Year(date), 
      Month(date), 
      Datename(weekday, date); 

可以使用datepart()代替year()month()。我只是發現後者更容易閱讀和打字。

+0

沒有我需要的是Januray月中所有星期日的總和......然後在2月份的星期天等等...你給出的結果與我得到的結果是一樣的...... – bibinmatthew

+0

@bibinmatthew。 。 。這個查詢應該每個工作日每月返回一行,以及這些卷的總和。您的查詢每天返回一行,並將當天的數量相加。查詢不應該返回相同的東西。如果您設置了SQL Fiddle示例,那麼我們可以比較兩個查詢的結果集。 –

+0

很好解釋:)感謝bro @gordon – bibinmatthew