B3Sロゴ
menu close

MySQL

【Mysql】COUNTを条件指定で


ヤス

更新日:2021/08/10


こんにちわ、ヤスです。

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

本日のこんなんええやん

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

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

↓こんな感じで

東京 大阪
2 4

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

これからは、こう

この論理です。
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標準なのかな?日々精進!