sql row_number 保持不变,除非满足条件
sql row_number stay the same unless a criteria is met
第一次 post 来这里,我进行了大量搜索以找到它,但不知道要搜索的术语。我在 SQL Server 2012 中有一个 table,其中包含具有以下列的时间表数据:Name, ID, ENTEREDONDTM, EVENTDATE, STARTDTM, ENDDTM, STARTREASON, ENDREASON
我正在尝试做一个 row_number
,其中 row_number 中的值保持不变,除非 StartReason = 'newShift'
在这种情况下我希望它增加 1。
我的最终目标是找到每个班次的总班次长度,并且我知道如何根据 startdtm
和 enddtm
进行这些计算,但是当前没有包含 [=17] 的列=] 让我分组。
您可以使用 Rank ()
窗口函数,按 StartReason 分区并添加 +1(保留第一个)。
在使用这个值之前,你可以用一个案例来比较这个值。
示例:case StartReason when 'newShift' then 1 else Rank () over (Partition by StartReason ) +1
第一次 post 来这里,我进行了大量搜索以找到它,但不知道要搜索的术语。我在 SQL Server 2012 中有一个 table,其中包含具有以下列的时间表数据:Name, ID, ENTEREDONDTM, EVENTDATE, STARTDTM, ENDDTM, STARTREASON, ENDREASON
我正在尝试做一个 row_number
,其中 row_number 中的值保持不变,除非 StartReason = 'newShift'
在这种情况下我希望它增加 1。
我的最终目标是找到每个班次的总班次长度,并且我知道如何根据 startdtm
和 enddtm
进行这些计算,但是当前没有包含 [=17] 的列=] 让我分组。
您可以使用 Rank ()
窗口函数,按 StartReason 分区并添加 +1(保留第一个)。
在使用这个值之前,你可以用一个案例来比较这个值。
示例:case StartReason when 'newShift' then 1 else Rank () over (Partition by StartReason ) +1