我有一个SQL视图,它在特定日期范围内生成以下星期一列表,如下所示:
Date Number
16/12/2013 208
23/12/2013 190
30/12/2013 187
15/12/2014 203
22/12/2014 190
29/12/2014 153
14/12/2015 225
21/12/2015 217
28/12/2015 223
是否有可能在每年的第一天,然后是第二个,然后是第三个等订购它们,以便给我如下所示的结果:
Date Number
16/12/2013 208
15/12/2014 203
14/12/2015 225
23/12/2013 190
22/12/2014 190
21/12/2015 217
30/12/2013 187
29/12/2014 153
28/12/2015 223
提前感谢您提供任何帮助或建议。
答案 0 :(得分:2)
我认为你应该能够通过在年份的分区上使用row_number()来获得你想要的东西,例如:
Select [Date], [Number],
Row_Number() over (PARTITION BY Year([DATE] order by [DATE]) as WEEK_IN_YR
from [table]
order by WEEK_IN_YR, [Date]