Создание категорий с помощью условной логики

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

Jasmin Ludolf

Senior Data Science Content Developer

CASE как инструмент условной логики

|duration|
|--------|
|123     |
|110     |
|151     |
...
  • Категории: «Short», «Standard», «Epic»

  • duration > 90: да или нет

  • Используем условную логику

  • Проще читать и анализировать

Bucket

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

Неудачные запросы для CASE

Запрос: Категоризируйте фильмы: Short — до 90 минут, Standard — до 150, Epic — всё остальное

SELECT 
    id, 
    title, 
    duration,
    CASE 
        WHEN duration < 90 THEN 'Short'
        WHEN duration < 150 THEN 'Standard'
        ELSE 'Epic'
    END AS film_category
FROM films;
Средний уровень SQL-запросов с ИИ

Неудачные запросы для CASE

Запрос: Категоризируйте фильмы: Short — до 90 минут, Standard — до 150, Epic — всё остальное

SELECT 
    id, 
    title, 
    duration,
    CASE 
        WHEN duration < 150 THEN 'Standard'
        WHEN duration < 90 THEN 'Short'
        ELSE 'Epic'
    END AS film_category
FROM films;

$$

  • Риск ошибок
  • Неверная категория, если фильм удовлетворяет обоим условиям
    • например, и меньше 90, и меньше 150
Средний уровень SQL-запросов с ИИ

Улучшенные запросы для CASE

Запрос: Категоризируйте фильмы: Short — до 90 минут, Standard — от 90 до 149 минут, Epic — от 150 минут, иначе — Unknown

SELECT 
    id, 
    title, 
    duration,
    CASE 
        WHEN duration < 90 THEN 'Short'
        WHEN duration BETWEEN 90 AND 149 THEN 'Standard'
        WHEN duration >= 150 THEN 'Epic'
        ELSE 'Unknown'
    END AS category
FROM films;
Средний уровень SQL-запросов с ИИ

Проверка логики

$$

|id|title                                           |duration|category|
|--|------------------------------------------------|--------|--------|
|1 |Intolerance: Love's Struggle Throughout the Ages|123     |Standard|
|2 |Over the Hill to the Poorhouse                  |110     |Standard|
|3 |The Big Parade                                  |151     |Epic    |
|4 |Metropolis                                      |145     |Standard|
...
|id  |title  |duration|category|
|----|-------|--------|--------|
|4396|Destiny|        |Unknown |
...
Средний уровень SQL-запросов с ИИ

Фильтрация NULL-значений

Запрос: Исключите записи с NULL в поле duration

SELECT 
    id, 
    title, 
    duration,
    CASE 
        WHEN duration < 90 THEN 'Short'
        WHEN duration BETWEEN 90 AND 149 THEN 'Standard'
        WHEN duration >= 150 THEN 'Epic'
        ELSE 'Unknown'
    END AS category
FROM films

WHERE duration IS NOT NULL;
Средний уровень SQL-запросов с ИИ

Преимущества категорий

$$

  • Понятные метки делают результаты нагляднее

$$

  • Улучшают коммуникацию

$$

  • Упрощают визуализацию

Star

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

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

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

Preparing Video For Download...