Команда GROUP BY

Команда GROUP BY позволяет группировать результаты при выборке из базы данных. К сгруппированным результатам можно применять любые функции (смотрите примеры).

Синтаксис

SELECT * FROM имя_таблицы WHERE условие GROUP BY поле_для_группировки

Таблицы для примеров

таблица employees
id
айди
name
имя
age
возраст
salary
зарплата
1 user1 23 400
2 user2 25 500
3 user3 23 500
4 user4 30 900
5 user5 27 500
6 user6 28 900

Пример

В данном примере записи таблицы группируются по возрасту (будет 3 группы - 23 года, 24 года и 25 лет). Затем для каждой группы применяется функция SUM, которая суммирует зарплаты внутри данной группы.

В результате для каждой из групп (23 года, 24 года и 25 лет) будет подсчитана суммарная зарплата внутри этой группы:

SELECT age, SUM(salary) as sum FROM employees GROUP BY age

Результат выполнения кода:

age
возраст
sum
сумма
23 600
24 3000
25 900

Пример

В данном примере мы используем дополнительное условие WHERE, чтобы взять не все записи из таблицы:

SELECT age, SUM(salary) as sum FROM employees WHERE id>=2 GROUP BY age

Результат выполнения кода:

age
возраст
sum
сумма
23 500
24 3000
25 900

Пример

В данном примере записи группируются по возрасту (будет 3 группы - 23 года, 24 года и 25 лет). Затем для каждой группы применяется функция MAX, которая находит максимальную зарплату внутри данной группы:

SELECT age, MAX(salary) as max FROM employees GROUP BY age

Результат выполнения кода:

age
возраст
max
максимальная зарплата
23 300
24 2000
25 900

Пример

А теперь с помощью функции MIN найдется минимальная зарплата внутри данной группы:

SELECT age, MIN(salary) as min FROM employees GROUP BY age

Результат выполнения кода:

age
возраст
min
минимальная зарплата
23 100
24 900
25 900

Пример

А теперь с помощью функции COUNT найдется количество записей в группе:

SELECT age, COUNT(*) as count FROM employees GROUP BY age

Результат выполнения кода:

age
возраст
count
количество
23 3
24 2
25 1

Смотрите также

  • команду HAVING,
    которая позволяет накладывать условие на группы