如何在TSQL中跨年度边界按周分组

如何在TSQL中跨年度边界按周分组,tsql,group-by,datepart,Tsql,Group By,Datepart,我使用tsql汇总每周数据(开始日期是星期一)。 上周跨越了2012年和2013年的界限,这意味着我每周得到两笔钱。 有没有办法将数据分组到tsql中,这样我就可以得到2012-12-31到2013-01-06的每周总和 数据和sql示例: 下面没有链接示例。假设表有一列datetime类型的“created”。每周有几排?我想得到两个结果行,一个是2012年最后一周的结果行,另一个是2013年开始的一周的结果行(2012年12月31日星期一开始) 一种解决方法是手动计算周数 select

我使用tsql汇总每周数据(开始日期是星期一)。 上周跨越了2012年和2013年的界限,这意味着我每周得到两笔钱。 有没有办法将数据分组到tsql中,这样我就可以得到2012-12-31到2013-01-06的每周总和

数据和sql示例:

下面没有链接示例。假设表有一列datetime类型的“created”。每周有几排?我想得到两个结果行,一个是2012年最后一周的结果行,另一个是2013年开始的一周的结果行(2012年12月31日星期一开始)


一种解决方法是手动计算周数

select 
min(created) as 'First Date',
count(*) as 'Count',
 datediff(dd,'2012-01-02',created)/7 AS week_number
from items
group by  datediff(dd,'2012-01-02',created)/7  -- You may replace '2012-01-02' to any date that is Monday (start day of the week)
order by min(created)

这对我有用。周以其第一天标记,因此不需要周数。谢谢
select 
min(created) as 'First Date',
count(*) as 'Count',
 datediff(dd,'2012-01-02',created)/7 AS week_number
from items
group by  datediff(dd,'2012-01-02',created)/7  -- You may replace '2012-01-02' to any date that is Monday (start day of the week)
order by min(created)