条件に合ったレコードを数え上げるSQL
条件に合致するレコード数を1行で出したいみたいな時に使える。
条件に合致するレコード数を1行にまとめて出したい、みたいな時が時々ある。自分の場合はBIツールでビジュアライズする場合など。
そういう時に使えるやつ。
SELECT
SUM(CASE WHEN status = 'published' THEN 1 ELSE 0 END) as published_post_count,
SUM(CASE WHEN status = 'deleted' THEN 1 ELSE 0 END) as deleted_post_count
FROM
posts
的な感じ。
条件に合致するレコードの時1、そうでない時0を返す式をsum関数に入れることで数えられる。