gpt4 book ai didi

php - 聚合和非聚合列的Postgresql用法,分组依据

转载 作者:行者123 更新时间:2023-11-29 14:00:49 25 4
gpt4 key购买 nike

讲座和我的实验室作业中的一些内容没有得到很好的解释。我无法显示正确的信息。这是数据库信息,仅供您引用以帮助我。 The database tables info 这是我要执行的查询 The postgresql php select statement

这会导致抛出此 SQl 错误

已连接到数据库!查询失败:错误:列“city.name”必须出现在 GROUP BY 子句中或用于聚合函数 LINE 3:city.name ^

现在,如果我将 city.name 添加到 GROUP BY 子句中,它会返回 4096 行!我不希望发生这种情况,结果必须按 232 行的国家/地区名称分组。我只想显示国家名称、城市名称和该国家/地区人口最多的城市。城市名称让我失望,我猜还有一个更复杂、语法更繁重的解决方案。感谢您的任何帮助,您可以提供。-汤姆·里斯

最佳答案

你需要这样的东西:

select
country.name,
city.name,
mp.maxpop
from
lab6.country,
lab6.city,
(select
country_code,
max(population) as maxpop
from
lab6.city
group by
country_code
) mp
where
country.country_code=mp.country_code and
country.country_code=city.county_code and
mp.maxpop=city.population

注意事项:

  • 这可以给你更多的结果/县。
  • 您的原始查询不起作用,因为在 ansi sql 中,您不能仅从“分组依据”查询返回聚合或分组依据表达式。 (如错误所述)

关于php - 聚合和非聚合列的Postgresql用法,分组依据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19212341/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com