Групповой запрос предназначен для группировки данных по одному или нескольким полям. Группа по ключевому слову используется в MYSQL для группировки данных. Основной синтаксис:
[GROUP BY Поле][Имея <условное выражение>]
Несколько полей можно сгруппировать с помощью GROUP BY. За ключевым словом GROUP BY следуют поля, которые необходимо сгруппировать. MYSQL выполняет иерархическую группировку на основе значений нескольких полей. Уровень группировки осуществляется слева направо. сначала группируется по первому полю, а затем Записи с одинаковым значением первого поля группируются по значению второго поля и так далее.
В некоторых случаях необходимо отсортировать группировку. Для сортировки запрошенных записей используется параметр Order by. При использовании вместе с GROUP BY сортировку группировки можно завершить. Например, следующая таблица:
Сгруппируйте данные в приведенной выше таблице в соответствии с форматом wellid, года и месяца: SQL-заявление:
select wellid,sum(number) as sum,DATE_FORMAT(time,'%Y-%m') as createTime
from well
GROUP BY wellid,createTime
order by createTime;
Статистические результаты:
GROUP BY можно использовать вместе с HAVING для ограничения условий, которые должны быть выполнены для отображения записей. Будут отображаться только группы, соответствующие условиям. По-прежнему таблица выше, на этот раз нам нужны данные только после декабря 2020 года:
select wellid,sum(number) as sum,DATE_FORMAT(time,'%Y-%m') as createTime
from well
GROUP BY wellid,createTime
having createTime>'2020-12'
order by createTime;
Результаты запроса: