SQL获取最大值

时间:2014-03-20 08:07:37

标签: sql

我有一个名为Filter的表,其中包含以下列:

FilterID    ViewID  Rank1
3              3      1
220           94      1
221           94      2


我需要为每个FilterID获得ViewID最大排名。

结果应为:

FilterID 
3
221

对于ViewID 94 Rank1为2,因此值为221。

谢谢

2 个答案:

答案 0 :(得分:3)

您没有说明您的DBMS,因此这是ANSI SQL(几乎适用于所有现代DBMS)

select FilterID
from (
  select FilterID, 
         ViewID, 
         Rank1,
         max(Rank1) over (partition by ViewID) as max_rank
  from Filter
) t
where Rank1 = max_rank;

答案 1 :(得分:1)

在快捷方式中,

 select max(FilterID)
  from Filter
group by ViewID