SQL - 显示总和以及表中的分组

问题描述 投票:0回答:1

我们如何显示表的总和以及分组总和。这是表格 表名称 - 人口

City        Building_no     population
Chicago      5                10
Chicago      6                20
Denver       8                25
Denver       9                30

输出

City       City_Population     Total_Population
Chicago     30                  85
Denver      55                  85

我可以使用以下代码获取 City_population -

select city, sum(population) from population group by city

如何获取total_population一栏?

sql mysql postgresql
1个回答
0
投票

您可以使用子查询作为列:

  SELECT city,
         SUM(population),
         (SELECT SUM(population)
            FROM population) AS the_total
    FROM population
GROUP BY city;

或者在FROM语句中使用子查询:

  SELECT a.city,
         SUM(a.population),
         b.total_population
    FROM population a,
         (SELECT SUM(population) AS total_population
            FROM population) b
GROUP BY a.city,
         b.total_population;

虽然第二个选项可能看起来更复杂,但使用更大的表可能会得到更好的结果,因为 - 我相信 - 子查询只会运行一次,而在 SELECT 语句中使用子查询可能需要为每一行运行。

© www.soinside.com 2019 - 2024. All rights reserved.