[SQL]条件を指定してCOUNTする方法

エクセルでいうCOUNTIF()みたいな関数ってSQLでないの?と探しておりましたらありました。

■■キーワード■■
・SUM
・CASE


COUNTしたい訳なんですがSUM()をつかます。SUMの中の条件指定としてCASEを使います。


例:アクセスログの中で男性ユーザーのログインだけをカウント

SELECT SUM(CASE WHEN sex = 'male' THEN 1 ELSE 0 END) from access_log


sexカラムの値が男性のときは1を、それ以外は0として判定し(CASE文)、
それぞれをSUM()で合計することで条件を指定して、エクセルのCOUNTIF()と同じ結果を得られます。

以上、覚書程度にブログを更新していこうと思いますのでよろしくお願いします。

このブログ記事について

このページは、tatsuyaが2011年6月13日 22:54に書いたブログ記事です。

次のブログ記事は「[SQL]GROUPでCOUNTした値を元にGROUPしてCOUNTする方法」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。