Групування даних

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

Jasmin Ludolf

Senior Data Science Content Developer

Групування даних

$$

  • Інсайти для окремих груп

$$

  • Об'єднання рядків з однаковими значеннями

$$

  • Підсумки, щоб виявити шаблони

Збірка книжок з мов

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

Distinct vs. groups

SELECT DISTINCT language
FROM films;
|language|        
|--------|
|Danish  |
|Greek   |
|Dzongkha|
|...     |
  • Унікальні значення
  • Які мови є в наявності?
SELECT language
FROM films
GROUP BY language;
|language|        
|--------|
|Danish  |
|Greek   |
|Dzongkha|
|...     |
  • Створює групи
  • Скільки фільмів у кожній мові?
Середній рівень SQL-запитів з AI

Формулювання для групування

Підказка: Згрупуйте фільми за мовою

SELECT language, COUNT(*) AS lang_count
FROM films
GROUP BY language;
|language|lang_count|
|--------|----------|
|        |11        |
|Arabic  |5         |
|Kannada |1         |
|Czech   |1         |
...

$$

  • Групування часто поєднують із підсумковою статистикою:
    • напр., підрахунок, середні

$$

  • Немає конкретного запиту -> COUNT()
    • Агрегатна функція
    • Узагальнює кілька рядків в одне значення
Середній рівень SQL-запитів з AI

Поширені помилки при групуванні

Підказка: Показати всі назви фільмів, згруповані за мовою

SELECT title
FROM films
GROUP BY language;
column "films.title" must appear in the
GROUP BY clause or be used in an 
aggregate function LINE 1...

Виправлення ШІ:

  • Додати функцію COUNT()
    SELECT language, COUNT(title) AS count
    FROM films
    GROUP BY language;
    
  • Вибрати коректні поля
    SELECT title, language
    FROM films
    GROUP BY title, language;
    
Середній рівень SQL-запитів з AI

Формулювання для групування

Підказка: Підрахуйте фільми за країною та мовою

SELECT country, language, COUNT(*) AS film_count
FROM films
GROUP BY country, language;
|country           |language|film_count|
|------------------|--------|----------|
|                  |        |1         |
|Pakistan          |Urdu    |1         |
|Mexico            |English |3         |
|Dominican Republic|Spanish |1         |
...
Середній рівень SQL-запитів з AI

Групування й сортування

Підказка: Ранжуйте мови за кількістю фільмів і покажіть топ‑3

SELECT language, COUNT(*) AS film_count
FROM films
GROUP BY language
ORDER BY film_count DESC
LIMIT 3;
|language|film_count|
|--------|----------|
|English |4635      |
|French  |72        |
|Spanish |40        |
Середній рівень SQL-запитів з AI

Давайте потренуємось!

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

Preparing Video For Download...