Фильтрация пропущенных значений

Средний уровень 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  |            |
...
Средний уровень SQL-запросов с ИИ

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

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

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

$$

  • Нарушают вычисления
  • Искажают средние значения
  • Скрывают закономерности

$$

✅ Выявление, выборка и исключение пропущенных значений

❌ Исправление или замена пропущенных значений

Повреждённый документ

Средний уровень SQL-запросов с ИИ

Пропущенные значения: NULL

Причины:

  • Пропуск полей
  • Сбои системы
  • Незафиксированные данные

$$

Пропущенные значения:

  • NULL: истинное пропущенное значение
  • " " или "None"

Недостающий фрагмент пазла

Средний уровень SQL-запросов с ИИ

IS NULL

Запрос: Показать названия и языки фильмов, у которых язык не указан

SELECT title, language
FROM films
WHERE language IS NULL;
|title               |language|
|--------------------|--------|
|Intolerance: Love...|        |
|Over the Hill to ...|        |
|The Big Parade      |        |
...
Средний уровень 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    |
...
Средний уровень SQL-запросов с ИИ

Выявление других неизвестных значений

Знак вопроса

$$

  • IS NULL и IS NOT NULL находят только истинные пропущенные значения

$$

  • А что насчёт «Not available», «None»?
    • Это не истинные значения NULL
    • Но данные всё равно отсутствуют или неизвестны
Средний уровень SQL-запросов с ИИ

Выявление других неизвестных значений

Запрос: Показать названия и языки фильмов, у которых язык равен 'None'

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

Поиск вариаций

Запрос: Показать все уникальные значения языков

SELECT DISTINCT language
FROM films;
|language|
|--------|
|        |
|Arabic  |
...
|None    |
...
Средний уровень 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 |
...
Средний уровень SQL-запросов с ИИ

Работа с нулями

$$

  • Ноль:
    • Пропущенная оценка?
    • Оценка равна 0?

$$

  • Требуется контекст:
    • Документация
    • Регламенты и требования бизнеса

Ноль

Средний уровень SQL-запросов с ИИ

Обработка пропущенных значений

  • Важный навык анализа
  • Влияет на выводы

$$

  • Работа с пропущенными значениями:
    • Изучите поля для выявления пропущенных значений
    • Применяйте фильтрацию по необходимости
    • Агрегатные функции игнорируют NULL, но учитывают ноль
    • COUNT(*) включает все строки, в том числе NULL

Увеличительное стекло

Средний уровень SQL-запросов с ИИ

Давайте потренируемся!

Средний уровень SQL-запросов с ИИ

Preparing Video For Download...