Sql查询分组

时间:2014-08-02 03:25:04

标签: sql sql-server

我有一个表格投票包含数据

Votes    Designation    CandidateID
 4         President      Person1
 3         President      Person2
 5         Secretary      Person5
 1         Vice-Present   Person6

我想仅根据指定查询获胜者候选人。 喜欢

 4      President Person1
 5      Secretary Person2
 1      Vice_President Person6

1 个答案:

答案 0 :(得分:2)

这适用于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;

请注意,这使用dense_rank()。如果有平局,那么所有"获胜者"被包含在内。您可以使用row_number()选择任意获胜者。

<强> See working SQL Fiddle demo