Агрегация данных

Мы научились создавать данные, научились фильтровать, а также объединять. В большинстве случаев этого может бытьи достаточно, но SQL предоставляет функционал и для группировки этих данных. Что такое группировка ? Группировка позволяет обединять данные по одинаковым значениям и выполнять к этим данным пгрегатционную функцию.

Для того, чтобы сгрупировать данные по колонке необходимо воспользоваться оператором GROUP BY с передачей в качестве аргумента название колонки. Пример:

SELECT название колонки FROM название_таблицы GROUP BY название колонки

В данном примере мы получим все возможные уникальные значения у колонки за счет их группировки. Но куда более интересно можно работать с использованием функций агрегирования. Для начала разберем их:

  • SUM() - суммирует значения столбца.

  • COUNT() - подсчитывает количество записей в столбце.

  • AVG() - вычисляет среднее значение в столбце.

  • MIN() - находит минимальное значение в столбце.

  • MAX() - находит максимальное значение столбца.

Например, мы хотим получить информацию о потенциальном доходе с продукции в нашем интернет магазине, сгруппированной по производителю. Сделать это можно следующим образом:

SELECT manufacture, SUM(price) FROM items GROUP BY manufacture

В данном примере мы группируем все наши товары по названию производителя, а для сгруппированных данных находим сумму значений из колонки price.

Дркгим примером может послужить запрос на получение кол-ва покупателей с именем John:

SELECT first_name, COUNT(*) FROM customers GROUP BY first_name

Обратите внимание, что мы не можем выводить другие столбцы в результате выборки, так как значения могут быть везде разными, а SQL не знает какое именно нужно показать. При этом мы можем использовать это значение внутри функции агрегации.

Кроме того, мы можем использовать несколько групировок с помощью перечисления названий таблиц через запятую. Сначала группируются данные по первой указанной колонке, после этого среди строк с одинаковым значением происходит группировка по второй укзаанной таблице и так далее.

Last updated