次の表があるとします。行を除いたSQLランク()関数
ID value
1 100
2 200
3 200
5 250
6 1
次のような結果が得られます。私はランク関数から値200を除外したいが、その行は返さなければならない。
SELECT
CASE WHEN Value = 200 THEN 0
ELSE DENSE_RANK() OVER (ORDER BY VALUE DESC)
END AS RANK,
ID,
VALUE
FROM @table
RANK ID VALUE
1 5 250
0 2 200
0 3 200
4 1 100
5 6 1
しかし、結果は次のようになります。それを達成する方法?あなたはclause..thatが理由である場合にはフィルタリングしない限り、現在の高密度ランクでヴァルを排除する方法はありません
RANK ID VALUE
1 5 250
0 2 200
0 3 200
2 1 100
3 6 1
優秀な解決 – TheGameiswar
作業クエリ..試してみてください –
素晴らしいクエリ!良い仕事 –