SQL - 找到最大值,然后找到对应的列
SQL - Find max value and then corresponding column
SQL 查询:3 列 table,搜索 "John" 的最大值,仅返回城市。
数据:
Name | City | Value <br>
John | LDN | 50 <br>
Joey | MCR | 12<br>
Dave | BHM | 5<br>
John | NTH | 56 <br>
期望的结果:第 NTH(第 4 行)
我怎样才能做到这一点?提前致谢。
您可以使用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)
您可以使用 order by
和一些限制结果的方法:
select t.*
from t
order by value desc
fetch first 1 row only;
有些数据库使用 select top (1)
或 limit 1
来限制为单行。
SQL 查询:3 列 table,搜索 "John" 的最大值,仅返回城市。
数据:
Name | City | Value <br>
John | LDN | 50 <br>
Joey | MCR | 12<br>
Dave | BHM | 5<br>
John | NTH | 56 <br>
期望的结果:第 NTH(第 4 行)
我怎样才能做到这一点?提前致谢。
您可以使用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)
您可以使用 order by
和一些限制结果的方法:
select t.*
from t
order by value desc
fetch first 1 row only;
有些数据库使用 select top (1)
或 limit 1
来限制为单行。