【问题标题】:SQL: calculate sum from IDs and 2 (or more) different tablesSQL:从 ID 和 2 个(或更多)不同的表中计算总和
【发布时间】:2017-08-01 14:33:09
【问题描述】:

我认为一个例子值一千字。

表格:大陆:

id | continent
---+----------
 1 | Africa
 2 | America
 3 | Asia
 4 | Europe
 5 | Oceania

表格:国家/地区

id | countries      | population | continent_id
---+----------------+------------+-------------
 1 | Australia      |   24500000 | 5
 2 | Brazil         |  209300000 | 2
 3 | Canada         |   36600000 | 2
 4 | France         |   65000000 | 4
 5 | Germany        |   82100000 | 4
 6 | Italy          |   59400000 | 4
 7 | Japan          |  127500000 | 3
 8 | South Africa   |   56700000 | 1
 9 | South Korea    |   51000000 | 3
10 | United Kingdom |   66200000 | 4
11 | United States  |  324500000 | 2

我想要的结果:

id | continent | continent_population
---+-----------+---------------------
 1 | Africa    |             56700000
 2 | America   |            570400000
 3 | Asia      |            178500000
 4 | Europe    |            272700000
 5 | Oceania   |             24500000

所以是的,我希望每个大陆的人口是另一个表格中国家总和的结果。我尝试了很多查询,但没有任何效果。

另外,这个标题可能很烂,但我不知道如何措辞。

【问题讨论】:

    标签: sql join sum


    【解决方案1】:

    试试这个,将两个表continent_id 连接到id,然后对人口求和,然后按大陆分组:

    SELECT
    CONTINENTS.id,
    CONTINENTS.continent,
    SUM(COUNTRIES.population) as continent_population
    FROM CONTINENTS
    LEFT JOIN COUNTRIES ON COUNTRIES.continent_id=CONTINENTS.id
    GROUP BY CONTINENTS.id, CONTINENTS.continent
    

    【讨论】:

    • 感谢您告诉我@rp17,很高兴它对您有用 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-11
    • 2013-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多