кодесурса
«SQL

Предложение SQL GROUP BY

script1adsense2code
script1adsense3code

Предложение GROUP BY

Предложение SQL GROUP BY используется для разделения строк в таблице на более мелкие группы.

Предложение GROUP BY используется с оператором SQL SELECT.

Группировка может произойти после извлечения строк из таблицы.

Когда некоторые строки извлекаются из сгруппированного результата в соответствии с некоторым условием, это возможно с помощью предложения HAVING.

Предложение GROUP BY используется с оператором SELECT, чтобы создать группу строк на основе значений определенного столбца или выражения. Функцию SQL AGGREGATE можно использовать для получения сводной информации по каждой группе, которая применяется к отдельной группе.

Предложение WHERE используется для извлечения строк на основе определенного условия, но его нельзя применить к сгруппированному результату.

Предположим, что в операторе SQL вы используете GROUP BY, при необходимости вы можете использовать HAVING вместо WHERE после GROUP BY.

Синтаксис:

 SELECT <column_list> 
ОТ <имя таблицы>
ГДЕ <условие> GROUP BY <столбцы> 
[HAVING] <условие>; 

Параметры:

название Описание
table_name Наименование таблицы.
column_list Наименование столбцов таблицы.
столбцы Наименование столбцов, которые будут участвовать в группировке.

Наглядное представление групп данных

«SQL

Использование GROUP BY с агрегатными функциями

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

SQL GROUP BY с функцией COUNT ()

Следующий запрос отображает количество сотрудников, работающих в каждом отделе.

Пример таблицы: сотрудники


Код SQL:

SELECT department_id "Department Code", 
COUNT(*) "No of Employees" 
FROM employees 
GROUP BY department_id; 

Пример вывода:

 Код отдела № сотрудников
--------------- ---------------
            100 6
             30 6
                              1
             90 3
             20 2
             70 1
            110 2
             50 45
             80 34
             40 1
             60 5
             10 1

SQL GROUP BY с функцией SUM ()

В следующем запросе отображается общая заработная плата, выплачиваемая сотрудникам, работающим в каждом отделе.

Пример таблицы: сотрудники


Код SQL:

SELECT department_id, SUM(salary) 
FROM  employees 
GROUP BY  department_id;

Пример вывода:

 DEPARTMENT_ID SUM (SALARY)
------------- -----------
          100 51608
           30 24900
                     7000
           90 58000
           20 19000
           70 10000
          110 20308
           50 156400
           80 304500
           40 6500
           60 28800
           10 4400

SQL GROUP BY с функцией COUNT () и SUM ()

В следующем запросе отображается количество сотрудников, общая заработная плата, выплачиваемая сотрудникам, работающим в каждом отделе.

Пример таблицы: сотрудники


Код SQL:

SELECT department_id "Department Code", 
COUNT(*) "No of Employees", 
SUM(salary) "Total Salary" 
FROM  employees 
GROUP BY  department_id; 

Пример вывода:

 Код отдела № работников Общая зарплата
--------------- --------------- ------------
            100 6 51608
             30 6 24900
                              1 7000
             90 3 58000
             20 2 19000
             70 1 10000
            110 2 20308
             50 45 156400
             80 34 304500
             40 1 6500
             60 5 28800
             10 1 4400

SQL GROUP BY на нескольких столбцах

В следующем запросе отображается код отдела, идентификатор задания, общая заработная плата, выплаченная группе сотрудников по департаменту_доставки, заданию_действия.

Пример таблицы: сотрудники


Код SQL:

SELECT department_id "Department Code", job_id, 
SUM(salary) "Total Salary" 
FROM  employees 
GROUP BY  department_id,job_id;

Пример вывода:

 Код отдела JOB_ID Общая зарплата
--------------- ---------- ------------
            110 AC_ACCOUNT 8300
             90 AD_VP 34000
             50 ST_CLERK 55700
             80 SA_REP 243500
             50 ST_MAN 36400
             80 SA_MAN 61000
            110 AC_MGR 12008
             90 AD_PRES 24000
             60 IT_PROG 28800
            100 FI_MGR 12008
             30 PU_CLERK 13900
             50 SH_CLERK 64300
             20 MK_MAN 13000
            100 FI_ACCOUNT 39600
                SA_REP 7000
             70 PR_REP 10000
             30 PU_MAN 11000
             10 AD_ASST 4400
             20 MK_REP 6000
             40 HR_REP 6500

SQL GROUP BY с предложением WHERE

В следующем запросе отображается код отдела, общая заработная плата, выплаченная группе сотрудников по департаменту_идентификатору и менеджеру = 103.

Пример таблицы: сотрудники


Код SQL:

SELECT department_id "Department Code", 
SUM(salary) "Total Salary" 
FROM  employees 
WHERE MANAGER_ID = 103 
GROUP BY  department_id;

Пример вывода:

 Код отдела Общая зарплата
--------------- ------------
             60 19800

SQL GROUP BY с предложением HAVING

В следующем запросе отображается идентификатор отдела, количество сотрудников из тех групп, в которых работают более 2 человек:

Пример таблицы: сотрудники


Код SQL:

SELECT department_id, count(*) "No. of Employee" 
FROM employees 
GROUP BY  department_id 
HAVING count(*)>2;

Пример вывода:

 DEPARTMENT_ID № сотрудника
------------- ---------------
          100 6
           30 6
           90 3
           50 45
           80 34
           60 5

Упражнения по SQL

Хотите улучшить вышеуказанную статью? Вносите свои заметки / комментарии / примеры через Disqus.

Новый контент: Composer: менеджер зависимостей для PHP , R программирования


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code