[英]Sql Query Grouping
I have a table Votes contain data 我有一张桌子票数包含数据
Votes Designation CandidateID 4 President Person1 3 President Person2 5 Secretary Person5 1 Vice-Present Person6
I want to query the winner candidate only per designation. 我只想按指定查询获胜者候选人。 like
喜欢
4 President Person1 5 Secretary Person2 1 Vice_President Person6
This is a good use for row_number()
or dense_rank()
: 这对于
row_number()
或dense_rank()
是一个很好的用法:
select v.*
from (select v.*,
dense_rank() over (partition by designation order by votes desc) as seqnum
from votes v
) v
where seqnum = 1;
Note that this uses dense_rank()
. 请注意,这使用
dense_rank()
。 If there is a tie, then all "winners" are included. 如果有平局,则包括所有“优胜者”。 You can use
row_number()
to choose an arbitrary winner. 您可以使用
row_number()
选择任意赢家。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.