Sql Serverでは、行番号のセットを繰り返し、セグメントまたはサブグループにグループ化する必要があります。私はSqlを使用して列Bを達成しようとしています。私はROW_NUMBER()関数を使用して列を達成したが、私はROW_NUMBERのためのロジックは、()番号付きの行をグループにグループ化する方法
1 +((ROW_NUMBER()オーバー(ある列B.ここ
に取得するかどうかはわかりませんタイムスタンプ、ファイル名、受注)によって順 - 1)%5)ROW_NUMBER]
Sql Serverでは、行番号のセットを繰り返し、セグメントまたはサブグループにグループ化する必要があります。私はSqlを使用して列Bを達成しようとしています。私はROW_NUMBER()関数を使用して列を達成したが、私はROW_NUMBERのためのロジックは、()番号付きの行をグループにグループ化する方法
1 +((ROW_NUMBER()オーバー(ある列B.ここ
に取得するかどうかはわかりませんタイムスタンプ、ファイル名、受注)によって順 - 1)%5)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
キーである必要があり、すなわち。
EDIT:
あなたのコードは次のとおりです。この場合、
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