如何使用 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
按Vote
列的降序给出一个排名,然后选择排名为 1 的行。
我更喜欢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] 删除。
我来说两句