對於每個地區顯示人口至少有1000萬的國家的地區和數量。如何返回請求的結果?
的表稱爲英國廣播公司和具有以下字段:
- 名(指的是國家的名字)
- 區域(指世界的區域)
- 區域(區域英里)
- 人口(有多少人民說國家有)
- GDP(國內生產總值)
我想我可以做這樣的事情:
SELECT region, COUNT(name) FROM bbc
GROUP BY region
HAVING population > 10000000
對於每個地區顯示人口至少有1000萬的國家的地區和數量。如何返回請求的結果?
的表稱爲英國廣播公司和具有以下字段:
我想我可以做這樣的事情:
SELECT region, COUNT(name) FROM bbc
GROUP BY region
HAVING population > 10000000
如果你想顯示所有區域,並在每個地區來計算人口超過1000萬的人數,那麼這可能是最簡單的:
SELECT region, SUM(CASE WHEN population > 10000000 THEN 1 ELSE 0 END) as BigCountries
FROM bbc
GROUP BY region
所以,如果你在沒有國家有人口超過1000萬更大的區域,你仍然必須與區域名稱的行和0
從您的意見@ Yograj古普塔的問題 - 如果你想去的地方所有國家都有人口>千萬的區域,那麼你可以修改上面:
SELECT region, COUNT(*) as Cnt,SUM(CASE WHEN population > 10000000 THEN 1 ELSE 0 END) as BigCountries
FROM bbc
GROUP BY region
HAVING COUNT(*) = SUM(CASE WHEN population > 10000000 THEN 1 ELSE 0 END)
或者只是利用一個簡單的[R屬性:
SELECT region, COUNT(*) as Cnt,MIN(population) as LowestPop
FROM bbc
GROUP BY region
HAVING MIN(population) > 10000000
凡在該地區的任何國家的最低人口> 10000000那麼所有國家都必須有一個人口>千萬
您應該使用
-- For getting count of country name which has population > 10000000
SELECT region, COUNT(name) FROM bbc
WHERE population > 10000000
GROUP BY region
或
-- For getting region which has SUM(population) > 10000000
SELECT region, COUNT(name) FROM bbc
GROUP BY region
HAVING SUM(population) > 10000000
什麼是你長了錯誤 – SRIRAM
'總和(人口)' –
或'WHERE人口> 1e7',這取決於你想要什麼。 –