gpt4 book ai didi

基于聚合函数的SQL返回

转载 作者:行者123 更新时间:2023-11-29 13:34:50 28 4
gpt4 key购买 nike

我有一个有效的查询,但它返回所有城市的信息,我只想根据一个国家/地区每一行的城市最大人口返回,但不能在 where 子句中使用聚合函数。如何将每个国家/地区的结果限制为一个?

SELECT lab6.country.name, max(lab6.city.population) AS largest_pop 
FROM lab6.country, lab6.city
WHERE lab6.country.country_code = lab6.city.country_code
GROUP BY lab6.country.name, lab6.city.name"

最佳答案

PostgreSQL 支持您可以利用的窗口函数。

SELECT  countryName, cityName, largest_pop
FROM
(
SELECT a.name countryName,
b.name cityName,
b.population AS largest_pop,
DENSE_RANK() OVER (PARTITION BY a.name
ORDER BY b.population DESC) rn
FROM lab6.country a, lab6.city b
WHERE a.country_code = b.country_code
) x
WHERE rn = 1

关于基于聚合函数的SQL返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15366121/

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