条件付き分析

AIで学ぶ中級SQLクエリ

Jasmin Ludolf

Senior Data Science Content Developer

条件付き集約

プロンプト: 各年ごとに、予算あり・予算なしの映画本数を表示する

SELECT 
    release_year,
    COUNT(CASE WHEN budget IS NOT NULL THEN 1 END) AS films_with_budget,
    COUNT(CASE WHEN budget IS NULL THEN 1 END) AS films_without_budget
FROM films
GROUP BY release_year;
|release_year|films_with_budget|films_without_budget|
|------------|-----------------|--------------------|
|1964        |10               |0                   |
|1969        |9                |1                   |
...
AIで学ぶ中級SQLクエリ

条件付き集約

条件の図

AIで学ぶ中級SQLクエリ

条件付き集約

プロンプト: 各年ごとに、予算あり・予算なしの映画本数を表示する

SELECT 
    release_year,
    COUNT(CASE WHEN budget IS NOT NULL THEN 1 END) AS films_with_budget,
    COUNT(CASE WHEN budget IS NULL THEN 1 END) AS films_without_budget
FROM films
GROUP BY release_year;
|release_year|films_with_budget|films_without_budget|
|------------|-----------------|--------------------|
|1964        |10               |0                   |
|1969        |9                |1                   |
...
  • 条件を満たす行は1としてカウントされる
AIで学ぶ中級SQLクエリ

条件付き集約

プロンプト: 各年ごとに、予算あり・予算なしの映画本数を表示する

SELECT 
    release_year,
    SUM(CASE WHEN budget IS NOT NULL THEN 1 ELSE 0 END) AS films_with_budget,
    SUM(CASE WHEN budget IS NULL THEN 1 ELSE 0 END) AS films_without_budget
FROM  films
GROUP BY release_year;
|release_year|films_with_budget|films_without_budget|
|------------|-----------------|--------------------|
|1964        |10               |0                   |
|1969        |9                |1                   |
...
AIで学ぶ中級SQLクエリ

NULLを伴う条件付き集約

プロンプト: 各年ごとに、予算あり・予算なしの映画本数を表示する

SELECT 
    release_year,
    COUNT(CASE WHEN budget IS NOT NULL THEN 1 END) AS films_with_budget,
    COUNT(CASE WHEN budget IS NULL THEN 1 END) AS films_without_budget
FROM films
GROUP BY release_year;
  • NULLfilms_without_budgetに含まれる
  • 必要に応じてWHEREで絞り込む
AIで学ぶ中級SQLクエリ

手法を組み合わせる

プロンプト: 2000年以降で予算データがあり本数が5本以上の各年について、予算が100万超を高予算、100万以下を低予算に分類し、各カテゴリの件数を年順で上位10件表示する

SELECT 
    release_year,

COUNT(CASE WHEN budget > 1000000 THEN 1 END) AS high_budget_count, COUNT(CASE WHEN budget <= 1000000 THEN 1 END) AS low_budget_count
FROM films
WHERE release_year > 2000 AND budget IS NOT NULL
GROUP BY release_year
HAVING COUNT(*) >= 5
ORDER BY release_year LIMIT 10;
AIで学ぶ中級SQLクエリ

カウント以外へ

$$

  • 条件付きパターンは他の集約にも有効

$$

  • 条件やしきい値を試す

$$

  • 見落としがちな洞察を得る

$$

洞察を発見

AIで学ぶ中級SQLクエリ

Passons à la pratique !

AIで学ぶ中級SQLクエリ

Preparing Video For Download...