【Mysql】COUNTを条件指定で

LINEで送る

こんにちわ、まっきーです。

SQLのCOUNTが関数内で条件指定できることをイマサラナガラ知りましたので、覚書き!

本日のこんなんええやん


名前住所
A郎くん大阪
A子さん大阪
B郎くん東京
C郎くん東京
B子さん大阪
D郎くん大阪

↑こんなデータがあるとき
大阪の人数と東京の人数を列にわけて集計したい
↓こんな感じで

東京大阪
24

いつもなら、こう(サブクエリ好きです。)


これからは、こう


この論理です。
count(*) は全件数を数える、count(hogehoge)は、hogehogeの NOT NULL値を数える!
3値(TRUE, FALSE, NULL)を使い、数えるものをNOT NULL値、数えたくないものをNULL値にする!

COUNT(住所 = ‘東京’ or null)とすると

住所 = ‘東京’ のとき → true or null → true
住所 <> ‘東京’ のとき → false or null → null

他の集計関数もきっと使えると思います。SQL標準なのかな?日々精進!

コメントを残す