从日期列表中获取周数

时间:2013-08-06 19:00:45

标签: sql sql-server

我有一个视图,它会返回一个我们工作一段时间的日期列表。日期通常是连续的。其中一列是'WeekNumber',它基于日期值,并返回年份的周数。日期列重复,因为某些项目每天都会发生几次。

我想要添加的是一个名为WeekNumberOfPeriod的新列。从视图中的每个时段开始为1。所以,如果我得到一个结果集:

WeekNumber:
37
37
37
37
37
37
37
38
38
38
38
38
38
38
39
39
39
40
40
40
40
40

然后我想:

WeekNumber,WeekOfPeriod

37,1
37,1
37,1
37,1
37,1
37,1
37,1
38,2
38,2
38,2
38,2
38,2
38,2
38,2
39,3
39,3
39,3
40,4
40,4
40,4
40,4
40,4

我认为我需要Row_Number,但我正在与分区进行斗争。我有一些项目正在运行,所以它需要以某种方式按projectId,weeknumber分组。

我希望是这样的:

    ROW_NUMBER() OVER(PARTITION BY pd.WeekNumber ORDER BY pd.DateValue) AS WeekNumberOfSprint,

但是,每周的数字只从1到x计算。我需要相同的周数,然后是2 ......

1 个答案:

答案 0 :(得分:4)

DENSE_RANK添加到外部SELECT列表中:

WeekOfPeriod = DENSE_RANK() OVER (ORDER BY pd.WeekNumber)