sql-server – 查找最大值并显示SQL Server中不同字段的相应值
发布时间:2020-12-12 16:16:11 所属栏目:MsSql教程 来源:网络整理
导读:我有一张有关城市数据的表格,其中包括他们的姓名,人口和其他与我的问题无关的字段. ID Name Population1 A 45667 2 B 123456 3 C 3005 4 D 13769 要找到最大人口是基本的,但是我需要一个生成的表,其中一个列的最大总体数和相应的城市的名称在另一列 Populatio
我有一张有关城市数据的表格,其中包括他们的姓名,人口和其他与我的问题无关的字段.
ID Name Population 1 A 45667 2 B 123456 3 C 3005 4 D 13769 要找到最大人口是基本的,但是我需要一个生成的表,其中一个列的最大总体数和相应的城市的名称在另一列 Population Name 123456 B 我已经看过similar个问题,但由于某些原因,答案看起来过于复杂.有没有办法在1或2行中写入查询? 解决方法有几种方法可以做到这一点:WHERE子句中的过滤器 select id,name,population from yourtable where population in (select max(population) from yourtable) 或者一个子查询: select id,population from yourtable t1 inner join ( select max(population) MaxPop from yourtable ) t2 on t1.population = t2.maxpop; 或者您可以使用TOP WITH TIES.如果没有关系,那么你可以删除与关系.这将包括具有相同总体值的任何行: select top 1 with ties id,population from yourtable order by population desc 由于您使用SQL Server,您还可以使用排名函数来获取结果: select id,population from ( select id,population,row_number() over(order by population desc) rn from yourtable ) src where rn = 1 参见SQL Fiddle with Demo. 作为排名函数的附注,您可能需要使用dense_rank()而不是row_number().那么如果你有不止一个人口相同的城市,你将会得到这两个城市的名字. (见Demo) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |