SQL | ГРУППА ПО

Опубликовано: 19 Августа, 2021

Оператор GROUP BY в SQL используется для организации идентичных данных в группы с помощью некоторых функций. т.е. если конкретный столбец имеет одинаковые значения в разных строках, он объединит эти строки в группу.

Важные точки:

  • Предложение GROUP BY используется с оператором SELECT.
  • В запросе предложение GROUP BY помещается после предложения WHERE.
  • В запросе предложение GROUP BY помещается перед предложением ORDER BY, если оно используется.

Синтаксис :

 ВЫБРАТЬ столбец1, имя_функции (столбец2)
FROM table_name
ГДЕ условие
ГРУППА ПО столбцу 1, столбцу 2
ЗАКАЗАТЬ столбец1, столбец2;

function_name : имя используемой функции, например, SUM (), AVG ().
table_name : Имя таблицы.
Состояние : Состояние б / у.

Образец таблицы:

Работник

Ученик


Пример:

  • Группировать по одному столбцу : Группировать по одному столбцу означает поместить все строки с одинаковым значением только этого конкретного столбца в одну группу. Рассмотрим запрос, как показано ниже:
     ВЫБЕРИТЕ ИМЯ, СУММУ (ЗАРПЛАТУ) ОТ сотрудника 
    ГРУППА ПО ИМЕНИ;
    

    Вышеупомянутый запрос даст следующий результат:

    Как видно из вышеприведенного вывода, строки с повторяющимися ИМЯМИ сгруппированы под одним ИМЯ, а их соответствующая ЗАРПЛАТА является суммой ЗАРПЛАТЫ повторяющихся строк. Здесь для вычисления суммы используется функция SQL SUM ().

  • Группировать по нескольким столбцам : Группировать по нескольким столбцам можно, например, GROUP BY column1, column2 . Это означает размещение всех строк с одинаковыми значениями столбцов column1 и column2 в одной группе. Рассмотрим следующий запрос:
     ВЫБЕРИТЕ ТЕМУ, ГОД, Счетчик (*)
    ОТ Студента
    ГРУППА ПО ПРЕДМЕТАМ, ГОД;
    

    Выход :

    Как видно из вышеприведенного вывода, ученики с одинаковыми ПРЕДМЕТАМИ и ГОДОМ помещаются в одну группу. И те, у кого один и тот же SUBJECT, но не YEAR, принадлежат к разным группам. Итак, здесь мы сгруппировали таблицу по двум или более чем одному столбцу.

ИМЕЮЩИЙ пункт

Мы знаем, что предложение WHERE используется для размещения условий в столбцах, но что, если мы хотим разместить условия в группах?

Здесь используется предложение HAVING. Мы можем использовать предложение HAVING для размещения условий, чтобы решить, какая группа будет частью окончательного набора результатов. Также мы не можем использовать агрегатные функции, такие как SUM (), COUNT () и т. Д., С предложением WHERE. Поэтому нам нужно использовать предложение HAVING, если мы хотим использовать любую из этих функций в условиях.

Синтаксис :

 ВЫБРАТЬ столбец1, имя_функции (столбец2)
FROM table_name
ГДЕ условие
ГРУППА ПО столбцу 1, столбцу 2
ИМЕЮЩИЕ условие
ЗАКАЗАТЬ столбец1, столбец2;

function_name : имя используемой функции, например, SUM (), AVG ().
table_name : Имя таблицы.
Состояние : Состояние б / у.

Пример :

 ВЫБЕРИТЕ ИМЯ, СУММУ (ЗАРПЛАТУ) ОТ сотрудника 
ГРУППА ПО ИМЕНИ
ИМЕЕТ СУММУ (ЗАРПЛАТУ)> 3000; 

Выход :

Как вы можете видеть в приведенных выше выходных данных, только одна группа из трех появляется в наборе результатов, поскольку это единственная группа, в которой сумма SALARY больше 3000. Таким образом, мы использовали здесь предложение HAVING, чтобы поместить это условие в качестве Условие необходимо размещать в группах, а не в столбцах.

Автор статьи - Харш Агарвал. Если вам нравится GeeksforGeeks, и вы хотели бы внести свой вклад, вы также можете написать статью с помощью provide.geeksforgeeks.org или отправить ее по электронной почте на deposit@geeksforgeeks.org. Посмотрите, как ваша статья появляется на главной странице GeeksforGeeks, и помогите другим гикам.

Пожалуйста, напишите комментарии, если вы обнаружите что-то неправильное, или вы хотите поделиться дополнительной информацией по теме, обсужденной выше.