【问题标题】:SQL - Find max value and then corresponding column [duplicate]SQL - 查找最大值然后对应的列[重复]
【发布时间】:2025-12-16 15:50:01
【问题描述】:

SQL 查询:3 列表,仅搜索“John”返回 City 的最大值。
资料:
Name | City | Value <br>
John | LDN | 50 <br>
Joey | MCR | 12<br>
Dave | BHM | 5<br>
John | NTH | 56 <br>

所需结果:NTH(第 4 行)

我怎样才能做到这一点?提前致谢。

【问题讨论】:

标签: sql max multiple-columns


【解决方案1】:

您可以使用row_number()

select city from
(
select *, row_number() over(partition by name order by value desc) as rn
from tablename
)A where rn=1 and name='John'

或者,

select city from tablename t 
where name='John' and value = (select max(value) from tablename t1 where t.name=t1.name)

【讨论】:

  • 感谢 Fahmi,感觉像是对 Row_number 函数的一个很好的介绍!
【解决方案2】:

您可以使用order by 和一些限制结果的方式:

select t.*
from t
order by value desc
fetch first 1 row only;

一些数据库使用select top (1)limit 1 来限制为单行。

【讨论】: