DENSE_RANK()(または類似)を取得して、選択クエリから必要な値を取得できない場合があります。私はRANK()とROW_NUMBER()を試して、PARTITIONフィールドとORDER-BYフィールドを変更しましたが、運はありません。 クエリは次の...T-SQL DENSE_RANK()が期待したものを返さない
SELECT 100 * DENSE_RANK() OVER (PARTITION BY UID_CUSTOMER, INT_GROUP_BY ORDER BY UID_CUSTOMER) AS aINT_GROUP_BY,
5 * ROW_NUMBER() OVER (PARTITION BY UID_DIVISION, UID_CUSTOMER,INT_GROUP_BY ORDER BY UID_DIVISION, UID_CUSTOMER, INT_GROUP_BY, INT_SORT_ORDER) AS aINT_SORT_ORDER,
UID_DIVISION, UID_CUSTOMER, UID_VEHICLE, INT_GROUP_BY, TXT_GROUP_NAME
FROM tVEHICLES TV
ORDER BY UID_DIVISION, UID_CUSTOMER, INT_GROUP_BY, INT_SORT_ORDER;
私はあなたは、3人の異なる顧客がリストされて見ることができるようにUID_CUSTOMER-数のオフセット(列キャプションがリスト表示を狭めるように変更されている)との結果を示します。残りの列に3
6に示す
aGROUP_BY aSORT_ORDER UID_DIVISION UID_CUSTOMER GROUP_BY TXT_GROUP_NAME
100 5 5 82 100 Group-100
100 10 5 82 100 Group-100
100 15 5 82 100 Group-100
100 20 5 82 100 Group-100
100 25 5 82 100 Group-100
100 5 5 86 100 Group-100
100 10 5 86 100 Group-100
100 15 5 86 100 Group-100
100 20 5 86 100 Group-100
100 25 5 86 100 Group-100
100 30 5 86 100 Group-100
100 5 5 88 100 North
100 10 5 88 100 North
100 15 5 88 100 North
100 5 5 88 200 South
100 10 5 88 200 South
100 15 5 88 200 South
二つの列がOVER-構築物から誘導され、私は200ない100フィールドデータのソースであることaGROUP_BY値を期待されていますあなたのご意見やアドバイスは大歓迎です...ジョン
のようなものを試してみてくださいすべての一意のフィールドでパーティション化しているように見えます。つまり、各行は各パーティション内に単独で存在します。あなたは何を返そうとしていますか? 17番目の行が最初のグループか2番目のグループになりますか? –
@PanagiotisKanavosありがとうございました。私はあなたのコメントが何を意味するのか、すべてのフィールドを分割することに関連しているか分かりません。私はUID_CUSTOMERとINT_GROUP_BYのパーティションを参照してください。私はRANK ... OVER ...構造で進歩していないので、何か助けが必要な場合があります - アイテム15,16,17を200にならないようにする100。 –
クエリとデータをクリーンアップし、未使用のフィールドを削除して、同じ名前を使用していることを確認してください。どのフィールドを必要としているのか、そしてどのフィールドを実際に分割するのかは分かりません。 'INT_'のような*すべての*超流動プレフィックスを削除すると、クエリを読みにくくする以外の目的を果たしません。 –