Фільтрування пропусків

Середній рівень SQL-запитів з AI

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  |            |
...
Середній рівень SQL-запитів з AI

Пропущені значення

SELECT COUNT(*) AS total_count
FROM films;
|total_count|
|-----------|
|4968       |
  • Рахує всі записи
SELECT COUNT(language) AS language_count
FROM films;
|total_count|
|-----------|
|4957       |
  • Рахує непорожні значення
Середній рівень SQL-запитів з AI

Пропущені значення

$$

  • Ламають обчислення
  • Викривляють середні
  • Ховають закономірності

$$

✅ Виявляйте, вибирайте, відкидайте пропуски

❌ Не виправляємо й не замінюємо пропуски

Зламаний документ

Середній рівень SQL-запитів з AI

Пропуски: NULL

Причини:

  • Пропущені поля
  • Збої систем
  • Значення не зафіксовано

$$

Пропуски:

  • NULL: справжній пропуск
  • " " або "None"

Відсутній елемент пазла

Середній рівень SQL-запитів з AI

IS NULL

Prompt: Show film titles and languages with no language

SELECT title, language
FROM films
WHERE language IS NULL;
|title               |language|
|--------------------|--------|
|Intolerance: Love...|        |
|Over the Hill to ...|        |
|The Big Parade      |        |
...
Середній рівень SQL-запитів з AI

IS NOT NULL

Prompt: Show film titles and languages that have a language defined

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    |
...
Середній рівень SQL-запитів з AI

Виявлення інших «невідомо»

Знак питання

$$

  • IS NULL і IS NOT NULL ловлять лише справжні пропуски

$$

  • А як щодо "Not available", "None"?
    • Це не справжні NULL
    • Але все одно відсутні чи невідомі
Середній рівень SQL-запитів з AI

Виявлення інших «невідомо»

Prompt: Show film titles and languages where the language is 'None'

SELECT title, language
FROM films
WHERE language = 'None';
|title              |language|
|-------------------|--------|
|Quest for Fire     |None    |
|Samsara            |None    |
Середній рівень SQL-запитів з AI

Пошук варіацій

Prompt: Show all unique language values

SELECT DISTINCT language
FROM films;
|language|
|--------|
|        |
|Arabic  |
...
|None    |
...
Середній рівень SQL-запитів з AI

Фільтрування варіацій

Prompt: Show film titles and languages where the language is not null or 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 |
...
Середній рівень SQL-запитів з AI

Як працювати з нулем

$$

  • Нуль:
    • Пропущений бал?
    • Бал 0?

$$

  • Потрібен контекст:
    • Документація
    • Бізнес-правила

Нуль

Середній рівень SQL-запитів з AI

Опрацювання пропусків

  • Важлива аналітична навичка
  • Впливає на висновки

$$

  • Як виявляти пропуски:
    • Досліджуйте поля, щоб знайти пропуски
    • Фільтруйте за потреби
    • Агрегати ігнорують NULL, але враховують нуль
    • COUNT(*) рахує всі рядки, зокрема з NULL

Лупа

Середній рівень SQL-запитів з AI

Готові до практики?

Середній рівень SQL-запитів з AI

Preparing Video For Download...