Группировка данных

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

Jasmin Ludolf

Senior Data Science Content Developer

Группировка данных

$$

  • Аналитика по отдельным группам

$$

  • Объединение строк с одинаковыми значениями

$$

  • Сводные данные для выявления закономерностей

Коллекция книг на разных языках

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

DISTINCT и группировка

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

Запросы на группировку

Запрос: Сгруппировать фильмы по языку

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

$$

  • Группировка часто используется со сводной статистикой:
    • например, подсчёт, средние значения

$$

  • Нет конкретного запроса -> COUNT()
    • Агрегатная функция
    • Сводит несколько строк в одно значение
Средний уровень SQL-запросов с ИИ

Типичные ошибки при группировке

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

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-запросов с ИИ

Запросы с группировкой

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

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-запросов с ИИ

Группировка и сортировка

Запрос: Ранжировать языки по числу фильмов, показать топ-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-запросов с ИИ

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

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

Preparing Video For Download...