欠損値をフィルタする

AIで学ぶ中級SQLクエリ

Jasmin Ludolf

Senior Data Science Content Developer

欠損値

SELECT title, release_year
FROM films
ORDER BY release_year DESC, title ASC;
|title           |release_year|
|----------------|------------|
|10,000 B.C.     |            |
|A Touch of Frost|            |    
|Anger Management|            |    
|Animal Kingdom  |            |
...
AIで学ぶ中級SQLクエリ

欠損値

SELECT COUNT(*) AS total_count
FROM films;
|total_count|
|-----------|
|4968       |
  • すべてのレコードを数える
SELECT COUNT(language) AS language_count
FROM films;
|total_count|
|-----------|
|4957       |
  • 欠損以外のみを数える
AIで学ぶ中級SQLクエリ

欠損値

$$

  • 計算を壊す
  • 平均を歪める
  • パターンを隠す

$$

✅ 欠損の特定・選択・除外

❌ 欠損の修正や置換

壊れたドキュメント

AIで学ぶ中級SQLクエリ

欠損値: NULL

原因:

  • フィールド未入力
  • システム障害
  • 未記録

$$

欠損値:

  • NULL: 真の欠損
  • " ""None"

欠けたパズル

AIで学ぶ中級SQLクエリ

IS NULL

プロンプト: 言語が未設定の映画タイトルと言語を表示

SELECT title, language
FROM films
WHERE language IS NULL;
|title               |language|
|--------------------|--------|
|Intolerance: Love...|        |
|Over the Hill to ...|        |
|The Big Parade      |        |
...
AIで学ぶ中級SQLクエリ

IS NOT NULL

プロンプト: 言語が設定されている映画タイトルと言語を表示

SELECT title, language
FROM films
WHERE language IS NOT NULL;
|title              |language|
|-------------------|--------|
|Metropolis         |German  |
|Pandora's Box      |German  |
|The Broadway Melody|English |
|Quest for Fire     |None    |
...
AIで学ぶ中級SQLクエリ

その他の不明値の特定

はてなマーク

$$

  • IS NULLIS NOT NULL は真の欠損のみ検出

$$

  • "Not available"、"None" は?
    • 真の欠損 NULL ではない
    • それでも欠損や不明値
AIで学ぶ中級SQLクエリ

その他の不明値の特定

プロンプト: 言語が 'None' の映画タイトルと言語を表示

SELECT title, language
FROM films
WHERE language = 'None';
|title              |language|
|-------------------|--------|
|Quest for Fire     |None    |
|Samsara            |None    |
AIで学ぶ中級SQLクエリ

表記ゆれの発見

プロンプト: 言語のユニーク値をすべて表示

SELECT DISTINCT language
FROM films;
|language|
|--------|
|        |
|Arabic  |
...
|None    |
...
AIで学ぶ中級SQLクエリ

表記ゆれのフィルタリング

プロンプト: NULL と None 以外の映画タイトルと言語を表示

SELECT title, language
FROM films
WHERE language IS NOT NULL AND language != 'None';
|title              |language|
|-------------------|--------|
|Metropolis         |German  |
|Pandora's Box      |German  |
|The Broadway Melody|English |
...
AIで学ぶ中級SQLクエリ

ゼロの扱い

$$

  • ゼロ:
    • スコア欠損?
    • スコアが0?

$$

  • 文脈が必要:
    • ドキュメント
    • ビジネス指針

ゼロ

AIで学ぶ中級SQLクエリ

欠損値の扱い

  • 重要な分析スキル
  • 結論に影響

$$

  • 欠損の見つけ方:
    • フィールドを探索して特定
    • 必要に応じてフィルタ
    • 集約は NULL を無視し、0 は含む
    • COUNT(*)NULL 含む全行を数える

虫眼鏡

AIで学ぶ中級SQLクエリ

演習の準備はいいですか?

AIで学ぶ中級SQLクエリ

Preparing Video For Download...