在Sql Server中,我需要重複設置行號並將它們分組爲段或子組。我試圖用Sql實現B列。我已經取得了使用ROW_NUMBER()函數列,但我不知道怎麼去列B.如何將編號的行分爲組
這裏是ROW_NUMBER()的邏輯
1 +((ROW_NUMBER()OVER(爲了通過時間戳,文件名,訂單ID) - 1)%5)AS [ROW_NUMBER]
在Sql Server中,我需要重複設置行號並將它們分組爲段或子組。我試圖用Sql實現B列。我已經取得了使用ROW_NUMBER()函數列,但我不知道怎麼去列B.如何將編號的行分爲組
這裏是ROW_NUMBER()的邏輯
1 +((ROW_NUMBER()OVER(爲了通過時間戳,文件名,訂單ID) - 1)%5)AS [ROW_NUMBER]
row_number()
你是以下形式:
row_number() over (partition by colA order by colB)
什T優似乎想的是:
dense_rank() over (order by colA)
也就是說,用於row_number()
分區鍵(S)應爲dense_rank()
的order by
鍵。
編輯:
你的代碼是:
1 + ((row_number() over (order by TimeStamp, FileName, OrderID) - 1) % 5) AS [Row_Number]
在這種情況下,沒有partition by
。你真正想要的只是整數除法。這很容易:
1 + ((row_number() over (order by TimeStamp, FileName, OrderID) - 1)/5) AS [Row_Number]
真是美極了!謝謝! – Bob
我會去用一個簡單的解決方案:
SELECT [Row_Number], GroupNumber
FROM (
SELECT [Row_Number]
, row_number()over(partition by [Row_Number] order by [Row_Number]) as GroupNumber
--Note: The order by clause above should be replaced with however you are ordering the groups of row numbers)
FROM YourTableOrInlineView
) z
ORDER BY GroupNumber, [Row_Number]
編輯你的問題,向您展示用於計算'ROW_NUMBER()的代碼'。 –
謝謝你的迴應。我添加了更多信息。 – Bob