6/10/2016

Оператор GROUP BY

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


Пример 1.
 SELECT dept_id, SUM(salary), 'constant expression'
 FROM emp
 WHERE title = 'Warehouse Manager'
 GROUP BY dept_id;

 DEPT_ID    SUM(SALARY) constant expression
 ---------- ----------- -------------------
 41         1200        constant expression
 42         1250        constant expression
 43         1100        constant expression
 44         1300        constant expression
 45         1307        constant expression

Комментарий: 
Оператор GROUP BY пишеться только после предложения WHERE. В операторе  SELECT в этот момент может выступить:
  • Агрегатные функции (SUM, MIN, MAX, AVG, COUNT).
  • Названия выбраных столбцов.
  • Постоянные выражения.

Пример 2.
 SELECT title, SUM(salary), count(*) FROM emp GROUP BY title;

 TITLE                     SUM(SALARY) COUNT(*)
 ------------------------- ----------- ----------
 President                 2500        1
 Sales Representative      7380        5
 Stock Clerk               9490        10
 VP, Administration        1550        1
 VP, Finance               1450        1
 VP, Operations            1450        1
 VP, Sales                 1400        1
 Warehouse Manager         6157        5

Комментарий:
В результатах отобразили суму заработной платы работников на каждой из должностей. Дополнительно, вывели информацию о количестве работников на данных должностях.

Пример 3.
 SELECT title, SUM(salary) FROM emp
 WHERE SUM(salary) > 2000
 GROUP BY title;

 ERROR at line 1:
 ORA-00934: group function is not allowed here

Комментарий:
В примере (к сожалению ошибочным), мы попытались отобразить суму заработка работников тех должностей, у которых сума больше чем 2000. С помощью оператора WHERE это не получиться сделать. Для того чтобы решить эту задачу нам нужно воспользоваться оператором HAVING.

1 комментарий :

  1. Я Абрам Александр, бизнесмен, который смог возродить свой умирающий лесозаготовительный бизнес с помощью отправленного Богом кредитора, известного как Бенджамин Ли, Кредитный Консультант. Проживаю в Екатеринбурге Екатеринбург. Вы пытаетесь начать бизнес, погасить свой долг, расширить свой существующий, нуждаетесь в деньгах для покупки расходных материалов. Если у вас возникли проблемы с попыткой получить хорошую кредитную линию, я хочу, чтобы вы знали, что мистер Бенджамин проведет вас до конца. Это правильное место для вас, чтобы решить все ваши финансовые проблемы, потому что я живое свидетельство, и я не могу просто оставить это при себе, когда другие ищут способ быть финансово поднятым .. Я хочу, чтобы вы все связались с этим Богом, посланным кредитором используя детали, как указано в других, чтобы принять участие в этой прекрасной возможности Электронная почта: lfdsloans@outlook.com Или WhatsApp / Text + 1-989-394-3740.

    ОтветитьУдалить