0

如何检索该数据:

Name     Title      Profit
Peter    CEO        2
Robert   A.D        3
Michael  Vice       5
Peter    CEO        4
Robert   Admin      5
Robert   CEO        13
Adrin    Promotion  8
Michael  Vice       21
Peter    CEO        3
Robert   Admin      15

得到这个:

Peter........4
Robert.......15
Michael......21
Adrin........8

我想从每个名字中获得最高的利润值。如果有多个相同的名称,则始终取最大值。

4

2 回答 2

5
select name,max(profit) from table group by name
于 2012-07-21T21:33:38.170 回答
2

由于这种类型的请求几乎总是跟在“现在我可以包含标题吗?”之后。- 这是一个为每个名称获得最高利润的查询,但可以包含所有其他列,而无需对这些其他列进行分组或应用任意聚合:

;WITH x AS 
(
  SELECT Name, Title, Profit, rn = ROW_NUMBER()
    OVER (PARTITION BY Name ORDER BY Profit DESC)
  FROM dbo.table
)
SELECT Name, Title, Profit
FROM x
WHERE rn = 1;
于 2012-07-21T23:38:53.930 回答