查找二阶变量SQL的最大值

时间:2017-11-08 14:18:20

标签: sql sql-server group-by max min

我的数据库中有一个表格,格式如下:

Name   Value  Count
Angus   B   70
Angus   C   2054
Angus   D   418
Betty   B   16
Betty   C   2
Betty   T   37
Betty   E   683
Colin   K   85
Colin   L   297
Colin   M   810

我需要能够为每个名称选择最高的计数并保留这些值 - 我会按顺序执行此操作,但“计数”列是表中其他唯一值的计数,因此无法执行GROUP By on Count。

非常感谢任何提示

2 个答案:

答案 0 :(得分:0)

您可以尝试以下查询:

C(1)

如果2个或更多记录碰巧具有相同的确切计数,则会产生给定名称的多个记录。如果你真的只需要一条记录,那么你应该揭示你打破平局的逻辑。在这种情况下,我们可能只能使用SELECT Name, Value, Count FROM ( SELECT Name, Value, Count, RANK() OVER (PARTITION BY Name ORDER BY Count DESC) rank FROM yourTable ) t WHERE t.rank = 1; 而不是排名分析函数。

答案 1 :(得分:0)

Row_number会这样做

with cte as
(
select Name 
       ,Value
       ,Count
       , ROW_NUMBER () over (partition by name order by [Count] desc) rn
       ) select name,value,[Count] from Cte where rn = 1