我的数据库中有一个表格,格式如下:
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。
非常感谢任何提示
答案 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