SQL Server での成績に基づいて学生にランクを付ける必要があります。生徒が 0 点を取得した場合、ランクは 0 または - になります。しかし、dense_rank() 関数を使用すると、ランクの順序は 1 からではなく 0 から始まります。
前もって感謝します。
SQL Server での成績に基づいて学生にランクを付ける必要があります。生徒が 0 点を取得した場合、ランクは 0 または - になります。しかし、dense_rank() 関数を使用すると、ランクの順序は 1 からではなく 0 から始まります。
前もって感謝します。
本当じゃない。
行のランクは、問題の行の前にある個別のランクの数に 1 を加えたものです。
これは、最初の行が 0+1=>1 であり、あなたが述べたように 0 ではないことを意味します。
このことからもわかる.
これのことですか?
select
(case when marks=0 then 0 else DENSE_RANK() over (order by marks desc) end) RNK,
marks,
student
from(
select 5 as marks, 'a' student union
select 5 as marks, 'b' student union
select 0 as marks, 'c' student union
select 1 as marks, 'd' student union
select 1 as marks, 'e' student union
select 3 as marks, 'f' student
)x
--order by RNK --Add order by clause if 0th rank to come first.