我想我只是需要一點幫助,但是否有辦法在SQL中使用某種型別的CTE行磁區來遞增計算步驟?我使用的是 SQL Server 2008,所以不能使用 LAG 函式。
在下文中,我試圖找到一種方法來計算步驟編號,如下圖所示,對于我表中的每個獨特的ITEM,在這種情況下是G43251,它根據日期(時間戳)和程序型別來計算程序Step_Number。對于那些具有相同的時間戳和;process_type,它將把它們都標記為相同的Step_Number,因為有其他欄位可能導致時間戳重復兩次。
現在,我正在玩這個游戲,看看我如何能在DISTINCT時間戳方法中找到它?這樣,它就不會把每一行都算作新的東西。
WITH cte as
(
SELECT[/span
*,
ROW_NUMBER() OVER (ORDER BY Timestamp_Posted DESC)
- ROW_NUMBER() OVER (PARTITION BY 專案 ORDER BY Timestamp_Posted Desc) rn
FROM[/span
#t1
)
SELECT[/span
*,
ROW_NUMBER() OVER (PARTITION BY Item, rn ORDER BY Timestamp_Posted DESC) rn2
FROM[/span
cte
ORDER BY
Timestamp_PostedDESC
uj5u.com熱心網友回復:
請使用dense_rank()而不是row_number()
SELECT *。dense_rank() OVER(partition By Item ORDER BY Timestamp_Posted, 流程_型別 ) 步驟_編號
FROM #t1
ORDER BY Timestamp_Posted DESC
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/314827.html
標籤:

