添加更多列后结果更改

时间:2019-07-14 13:43:24

标签: mysql sql

我正在使用MYSQL在世界数据库上使用city表,但是我得到了一些奇怪的结果,我知道这是错误的。我想知道为什么会这样以及如何解决这种情况。

pyspark

这是孟买的人口,当我尝试将名称绑定到这里时,我会得到:

select max(population) from city
## answer##
10500000 ## 

2 个答案:

答案 0 :(得分:0)

此查询:

select, name, max(population)
from city

没有道理。这是一个聚合查询(由于max())。它将仅返回一行(因为没有group by)。但是name的值是什么?

在标准SQL中,几乎所有数据库和最新版本的MySQL(具有默认设置)都会返回错误,表示“未聚合name”。

较早版本的MySQL允许这种构造,并从数据的任意且不确定的行中选择name的值。

您似乎真正想要的是:

select name, population
from city
order by population desc
limit 1;

答案 1 :(得分:-1)

第二个查询的正确语法为-

SELECT name, MAX(population)
FROM city
GROUP BY name;