CASE 式

数値をグルーピングして文字列にしたり、数値を文字列に変換するときに使う
SQLでデータ抽出の場合以外は使わない
変換が必要なときはAPI側で変換する

NULLの挙動は確認する
ELSEを省略するとNULL

例: 顧客ごとのレンタル数

# CASEの場合
SELECT
  c.first_name,
  c.last_name,
  CASE
    WHEN active = 0 THEN 0
    ELSE (
      SELECT
        COUNT(*)
      FROM
        rental r
      WHERE
        r.customer_id = c.customer_id
    )
  END rental_count
FROM
  customer c;

# GROUP BYの場合
SELECT
  c.first_name,
  c.last_name,
  COUNT(*) rental_count
FROM
  customer c
  INNER JOIN
   rental r ON c.customer_id = r.customer_id
GROUP BY
  c.customer_id;