Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从sql表中检索最高值_Sql_Sql Server 2008 - Fatal编程技术网

从sql表中检索最高值

从sql表中检索最高值,sql,sql-server-2008,Sql,Sql Server 2008,如何检索该数据: 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

如何检索该数据:

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
我想从每个名字中获得最高的利润值。
如果有多个相等的名称,则始终取最大值。

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

select name,max(profit) from table group by name
;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;

以后,请不要用毫无意义的
-空格实际上更有用。@Aaron,但它不会像表格一样显示。我只是想用一种很好的方式来帮助那些关注它的人。我更改了第一部分并删除了。。。。你喜欢这个结果吗?是的,在我看来这仍然像一个表格。是的,这是因为马丁·史密斯不知怎么更正了它。我想他只是添加了空格而不是点。事实上你是对的,我必须包含更多的字段。但是,hkutluay的解决方案不起作用,但你的解决方案起作用。但我不能改变这个问题,否则这将不公平,因此我将hkutluay的答案标记为解决方案。给你一个分数,谢谢你,带Over子句的CTE很有趣。