如何在SQL Server(快速版)中获得人口最多的城市?

时间:2018-06-30 14:42:05

标签: sql sql-server

所以我正在使用SQL Server,其中有两列名为City和人口。如何找到人口最多的城市的名称(在语法上)?我听说SQL Server与MySQL有点不同。

当前代码:

[
  {
   "key1ey1": "Value1\r"
  },
  {
   "key2": "value2"
  },
  {
   "key3": "value3\r"
  },
  {
   "key4": "value4"
  }

]

4 个答案:

答案 0 :(得分:2)

在这种情况下,T-SQL和MySQL之间的代码非常相似。

还有其他可行的方法,但是根据您已经编写的代码,这可能是最容易理解的方法。

select
  city,
  population
from
  city
where
  population = (
    select max(population) from city
  )

答案 1 :(得分:2)

您可以在SQL Server中使用max(population) over (order by population desc)语法(不要忽略别名(此处是q)内部查询):

SELECT city
FROM
    (SELECT MAX(population) OVER (ORDER BY population desc) max_pop, *
     FROM city) q
WHERE population = q.max_pop;

SQL Fiddle Demo

答案 2 :(得分:1)

您需要在子查询中找到最大人口,然后找到具有该人口的所有城市:

select city
  from my_table
  where population = (
    select max(population) from my_table
  )

在两个城市共享最大人口的(罕见)情况下,此查询还将为您提供多个城市。

答案 3 :(得分:1)

您可以按人口降序对记录进行排序,然后仅选择第一条记录:

SELECT TOP 1 City FROM t
ORDER BY Population DESC