Фільтрування згрупованих даних

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

Jasmin Ludolf

Senior Data Science Content Developer

WHERE чи HAVING

Які мови мають понад 20 фільмів?

  • Кількість мов: агрегація і групування

 

WHERE

  • Окремі рядки
  • Які окремі фільми відповідають умові?

$$

$$

$$

HAVING

  • Згруповані результати
  • Які групи відповідають умові?
Середній рівень SQL-запитів з AI

Фільтрування згрупованих даних

Підказка: Які мови мають понад 20 фільмів?

SELECT language, COUNT(*) AS lang_count
FROM films
GROUP BY language
HAVING COUNT(*) > 20;
|language|
|--------|
|Mandarin|
|Spanish |
|French  |
|Hindi   |
|English |

$$

  • Фільтрує після:
    • Групування
    • Агрегацій
    • Коли доступні підрахунки
Середній рівень SQL-запитів з AI

Формулювання запитів для групових фільтрів

Підказка: Назви фільмів і бюджети з бюджетом понад 5 мільйонів

SELECT title, budget
FROM films
WHERE budget > 5000000;
|title          |budget |
|---------------|-------|
|Metropolis     |6000000|
|Duel in the Sun|8000000|
|Quo Vadis      |7623000|
|West Side Story|6000000|
...

Підказка: Мови та бюджет із заокругленим середнім бюджетом понад 5 мільйонів

SELECT language, ROUND(AVG(budget)) AS avg_budget
FROM films
GROUP BY language
HAVING ROUND(AVG(budget)) > 5000000;
|language|avg_budget|
|--------|----------|
|Danish  |16700000  |
|None    |8250000   |
|Tamil   |150000000 |
...
Середній рівень SQL-запитів з AI

Поєднання фільтрів

Підказка: Показати мови з понад 5 фільмами з 2000 року і пізніше, де середня тривалість перевищує 80

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

Поєднання фільтрів

Підказка: Показати мови з понад 5 фільмами з 2000 року і пізніше, де середня тривалість перевищує 80

SELECT language, COUNT(*) AS film_count, ROUND(AVG(duration)) AS average_duration
FROM films

WHERE release_year >= 2000
GROUP BY language
Середній рівень SQL-запитів з AI

Поєднання фільтрів

Підказка: Показати мови з понад 5 фільмами з 2000 року і пізніше, де середня тривалість перевищує 80

SELECT language, COUNT(*) AS film_count, ROUND(AVG(duration)) AS average_duration
FROM films
WHERE release_year >= 2000
GROUP BY language

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

Поєднання фільтрів

Підказка: Показати мови з понад 5 фільмами з 2000 року і пізніше, де середня тривалість перевищує 80

SELECT language, COUNT(*) AS film_count, ROUND(AVG(duration)) AS average_duration
FROM films
WHERE release_year >= 2000
GROUP BY language

HAVING COUNT(*) > 5 AND ROUND(AVG(duration)) > 80;
|language|film_count|average_duration|
|--------|----------|----------------|
|Mandarin|26        |112             |
|Japanese|10        |114             |
|Spanish |37        |107             |
...
Середній рівень SQL-запитів з AI

Порядок операцій

$$

FROM

Конвеєрна лінія

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

Порядок операцій

$$

FROMWHERE

Конвеєрна лінія

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

Порядок операцій

$$

FROMWHEREGROUP BY (та агрегація) ➝

Конвеєрна лінія

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

Порядок операцій

$$

FROMWHEREGROUP BY (та агрегація) ➝ HAVING

Конвеєрна лінія

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

Порядок операцій

$$

FROMWHEREGROUP BY (та агрегація) ➝ HAVINGSELECT

Конвеєрна лінія

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

Порядок операцій

$$

FROMWHEREGROUP BY (та агрегація) ➝ HAVINGSELECTORDER BY

Конвеєрна лінія

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

Порядок операцій

$$

FROMWHEREGROUP BY (та агрегація) ➝ HAVINGSELECTORDER BYLIMIT

Конвеєрна лінія

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

Формулювання фільтрів

Обидва: Фільми з 2000 року і пізніше, де середня тривалість понад 80

WHERE: Окремі записи

  • Назви фільмів, випущених після 2024
  • Бюджети понад 5 мільйонів

HAVING: Використовує агрегати

  • Мови із середнім бюджетом понад 10000
  • Кількість фільмів більша за 5

Ручка на папері

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

Ітеративні підказки

$$

1) Почніть з малого

2) Перевірте результати

3) Дайте нову підказку, додавши деталі

4) Повторюйте!

3D-ілюстрація мовних бульбашок: одна з AI, інша з трикрапкою

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

Час потренуватися!

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

Preparing Video For Download...