すべての地域を表示し、各地域内で人口が 1,000 万人を超える数を数えたい場合は、おそらくこれが最も簡単です。
SELECT region, SUM(CASE WHEN population > 10000000 THEN 1 ELSE 0 END) as BigCountries
FROM bbc
GROUP BY region
したがって、人口が 10000000 を超える国がない地域がある場合でも、その地域名と 0 を含む行が残ります。
コメントから @Yograj Gupta の質問へ -すべての国の人口が 10000000 を超える地域が必要な場合は、上記を変更できます。
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)
または、より単純なプロパティを利用するだけです:
SELECT region, COUNT(*) as Cnt,MIN(population) as LowestPop
FROM bbc
GROUP BY region
HAVING MIN(population) > 10000000
地域内のいずれかの国の最小人口が > 10000000 である場合、すべての国は人口が > 10000000 でなければなりません