Microsoft SQL Serverを使用して入力から出力を取得するにはどうすればよいですか?(基本的に、投票が最大であるIDごとの行を選択します)。
入力
ID Label Vote
-----------------------
79185673 2 3
79185673 0 17
79185724 4 5
79185724 1 13
79185724 0 2
79185900 1 17
79185900 2 1
79185900 4 2
79186190 3 3
79186190 2 17
出力
ID Label Vote
-----------------------
79185673 0 17
79185724 1 13
79185900 1 17
79186190 2 17
ROW_NUMBER
またはDENSE_RANK
関数を使用して、列ID
の降順でランクを指定し、ランク1Vote
の行を選択します。
DENSE_RANK
同じVote
値に対して同じランクが与えられるので、私は関数を好みます。
クエリ
;with cte as(
select [rank] = DENSE_RANK() over(
partition by [ID]
order by [Vote] desc
), *
from [your_table_name]
)
select [ID], [Label], [Vote] from cte
where [rank] = 1;
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加