Group By SQL: Mastering Data Analysis with Group By Statements
GROUP BY в SQL – это оператор, который применяется к результату SELECT запроса, чтобы сгруппировать строки по заданному столбцу или нескольким столбцам.
Пример:
Пусть у нас есть таблица “orders” с полями (id, customer_id, product, price, date). Необходимо вывести общее количество заказов по каждому клиенту.
SELECT customer_id, COUNT(*) FROM orders GROUP BY customer_id;
Результат:
customer_id | COUNT(*)
--------------|---------
1 | 5
2 | 3
3 | 2
GROUP BY сгруппировал строки в таблице по столбцу “customer_id” и подсчитал количество строк (заказов) для каждого клиента.
GROUP BY также может использоваться с функциями агрегации, такими как SUM, AVG, MIN, MAX, COUNT.
Пример:
Найдем общую сумму заказов по каждому клиенту:
SELECT customer_id, SUM(price) FROM orders GROUP BY customer_id;
Результат:
customer_id | SUM(price)
--------------|------------
1 | 120.50
2 | 75.00
3 | 46.75
GROUP BY разбил таблицу на группы по “customer_id” и применил функцию SUM к столбцу “price”.
Важно заметить, что при использовании оператора GROUP BY, можно выбирать только те столбцы, которые содержатся в GROUP BY или функции агрегации, иначе возникнет ошибка.
Пример:
Запрос “SELECT product, COUNT(*) FROM orders GROUP BY customer_id;” вызовет ошибку, потому что столбец “product” не содержится в GROUP BY или функции агрегации.
GROUP BY также может использоваться с условными выражениями, чтобы определить, какие значения считаются одной группой.
Пример:
Допустим, мы хотим сгруппировать заказы по клиентам, у которых общая стоимость заказов больше 100:
SELECT customer_id, SUM(price) FROM orders GROUP BY CASE WHEN SUM(price) > 100 THEN customer_id ELSE NULL END;
GROUP BY разбил таблицу на две группы – клиентов с общей стоимостью заказов больше 100 и клиентов с меньшей стоимостью.
GROUP BY в SQL – мощный инструмент для анализа и обработки данных, который позволяет сгруппировать строки по заданному столбцу или нескольким столбцам, а также применять к ним функции агрегации и условные выражения.