複雑なグループ集計で数を数える (SQL:14020)

Questions
何回かに分けてクエリを実行すれば求められるが、一回でやるとちょっとかっこいいクエリの作成です。
お題は・・・
 【アジア圏でエリア毎に人口が10000を超えている国の数を求める】
です。

 まずはアジア圏の種類を確認します。
Select Distinct parea From T_world Where parea Like '%Asia'
 これで以下の5種類が存在する事が確認できます。
Central Asia
Central and Southern Asia
Eastern Asia
South-Eastern Asia
Southern Asia

 次に、Central Asiaに絞って、tの値が10000を超えているか否かを、国ごとに判定します。
Select parea,(case when t>10000 then 1 else 0 end) as ck From T_world Where parea='Central Asia'
 ※各国の情報は表示していません。それぞれの国名は不明ですが今回は超えている国の数を求めるだけの内容です。

 10000を超える数という観点で考えると以下の通りに書換えればおしまいです。
Select parea,sum((case when t>10000 then 1 else 0 end)) as cknum From T_world Where parea='Central Asia' Group By parea
 通常数を数えるのはcountの仕事ですが、ここでは前段で1or0に変更しているため、sumで数を数えることが可能になっています。

 後は単純にこれらを残り全ての国で求めればよいだけです。
Up:2021/08/29
Re:2021/09/09

Appendix
Click!
この書き方で、求めている値を導くことができます。
Select 
 parea
,sum((case when t>10000 then 1 else 0 end)) as cknum 
From T_world 
Where parea Like '%Asia' 
Group By parea
でも、もうちょっとカッコよくしたくないですか?
次の次の章で、行列の入れ替えにチャレンジします。
超初級
初級
中級
上級
特殊
演習
超初級
初級
中級
上級
特殊
演習
aaaa