首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL:比较来自不同表的两个计数

SQL:比较来自不同表的两个计数
EN

Stack Overflow用户
提问于 2016-02-05 02:55:45
回答 1查看 9.8K关注 0票数 0

我有三张桌子,一张是世界上每一个国家的,一张是象征性的

代码语言:javascript
复制
NAME              CODE
Afghanistan       AFG
Albania           AL
Algeria           DZ
American Samoa    AMSA
Andorra           AND
Angola            ANG
Anguilla          AXA
(...)

还有一张列有这些国家所有湖泊和另一座山的桌子。

代码语言:javascript
复制
LAKE                 CODE
Bodensee             A
Neusiedlersee        A
Lake Prespa          AL
Lake Ohrid           AL
Lake Skutari         AL
Lake Eyre            AUS
Lake Jindabyne       AUS
Lake Hume            AUS
Lake Eucumbene       AUS
Lake Hume            AUS
Lake Burley Griffin  AUS
(...)

MOUNTAIN             CODE
Hochgolling          A
Hochgolling          A
Zugspitze            A
Grossglockner        A
Jezerce              AL
Korab                AL
Uluru                AUS
Mt. Kosciuszko       AUS
Mt. Bogong           AUS
Musala               BG
Illampu              BOL
Sajama               BOL
Licancabur           BOL
(...)

我现在要向那些山区比湖泊少的国家展示。我试了几个小时,但找不到解决这个问题的方法。我试着把这三张桌子连在一起--但我不知道下一步该怎么做。我确信我必须使用嵌套的SQL命令。

这是我在计算每个国家的湖泊和山脉方面的尝试。

代码语言:javascript
复制
SELECT Country.name, count(Geo_lake.code), count(Geo_mountain.code) 
From Country 
INNER JOIN Geo_lake On (Country.code = geo_lake.code)
INNER JOIn Geo_mountain On (Country.code = geo_mountain.code) 
Group by Country.name;

但不知何故,这两列的计数(Geo_lake.country)和计数(Geo_mountain.country)的值似乎是相同的,我不知道确切的原因。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-05 03:29:48

首先,从获得每个人的金额开始:

代码语言:javascript
复制
# Sum of lakes
SELECT code, count(*) AS sum FROM lakes GROUP BY code

# Sum of mountains
SELECT code, count(*) AS sum FROM mountains GROUP BY code

然后将结果组合在一起,选择一个国家的山区之和小于湖泊数的所有行:

代码语言:javascript
复制
SELECT l.code AS code, l.sum AS lake_count, m.sum AS mountain_count
FROM
(SELECT code, count(*) AS sum FROM lakes GROUP BY code) AS l JOIN
(SELECT code, count(*) AS sum FROM mountains GROUP BY code) AS m
ON l.code = m.code
WHERE m.sum < l.sum
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35215541

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档