Группировка по больше чем Одному столбцу

Иногда, Вы должны увидеть результаты для групп внутри групп.

Группировка по больше чем Одному столбцу

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

Таблица EMPLOYEES группируется сначала по номеру отдела, а затем по названию работы в пределах этой группировки. Например, четыре клерка в отделе 50 группируются вместе, и единственный результат (полная зарплата) вычисляется для всех клерков в группе.

Следующий оператор SELECT возвращает результат, показанный на рисунке:

    SELECT department_id, job_id, sum(salary)
FROM employees
GROUP BY department_id, job_id
ORDER BY job_id;

Использование Предложения GROUP BY для Нескольких Столбцов

Использование Предложения GROUP BY для Нескольких Столбцов

Можно возвратить сводные результаты для групп и подгрупп, перечисляя несколько столбцов в GROUP BY. Предложение GROUP BY группирует строки, но не гарантирует порядка в наборе результатов. Чтобы упорядочить группировки, используйте предложение ORDER BY.

В примере на рисунке, оператор SELECT, который содержит предложение GROUP BY, обрабатывается следующим образом:

  • Предложение SELECT определяет столбец, который будет получен:

    • ID отдела в таблице EMPLOYEES

    • ID работы в таблице EMPLOYEES

    • Сумма всех зарплат в группе, которую Вы определили в предложении GROUP BY

  • Предложение FROM определяет таблицы, к которым должна обратиться база данных: таблица EMPLOYEES.

  • Предложение WHERE сужает набор результатов до тех строк, где ID отдела больше чем 40.

  • Предложение GROUP BY определяет, как следует сгруппировать получающиеся строки:

    • Во-первых, строки группируются по ID отдела.

    • Во-вторых, строки группируются по ID работы в группах с одинаковым ID отдела.

  • Предложение ORDER BY сортирует результаты по ID отдела.

Отметьте: функция SUM применяется к столбцу зарплаты для всех ID работы в наборе результатов для каждой группы с одним и тем же ID отдела. Кроме того, отметьте что строка SA_REP не возвращается. ID отдела для этой строки равен NULL и, поэтому, она не удовлетворяет условию WHERE.

Далее: Создание Соединений с Предложением ON

Смотрите также
Комментарии
Написать

(обязательно)

(обязательно)

Это не спам (обязательно)