# Beginner SQL Learning

## 行列の入れ替え (SQL:14040)

Questions

なぜ間に仮想表を持ってきたかというと、今から行う行列の入れ替えはさらに複雑になるため、一度整理したかったからです。
どんどん活用していきましょう！それではこのクエリーを・・・
```Select
parea
,sum(
(case when t>10000 then 1 else 0 end)
) as cknum
From T_world
Where parea Like '%Asia'
Group By parea
```

```Select * From(
Select
parea
,sum(
(case when t>10000 then 1 else 0 end)
) as cknum
From T_world
Where parea Like '%Asia'
Group By parea
)X
```
それではこの状態から行列を入れ替えていきますが、ちょっと一息、想像してみてください。

Up:2021/08/29
Re:2021/09/09

Appendix
Click!

※スマホだと画面がはみ出ると思います。横向きにしてください。
```Select
sum((case when X.parea ='Central Asia'              then cknum else 0 end)) as C
,sum((case when X.parea ='Central and Southern Asia' then cknum else 0 end)) as CS
,sum((case when X.parea ='Eastern Asia'              then cknum else 0 end)) as E
,sum((case when X.parea ='South-Eastern Asia'        then cknum else 0 end)) as SE
,sum((case when X.parea ='Southern Asia'             then cknum else 0 end)) as SA
From(
Select
parea
,sum((case when t>10000 then 1 else 0 end)) as cknum
From T_world
Where parea Like '%Asia'
Group By parea
)X
```

※SQL Server限定ですが、pivotを使うことによりもうちょっと簡単に行列の入れ替えができます。ただ、ベンダー依存が強いため、CASE式を使った方法を覚えておいた方が良いです。

aaaa