Предложение GROUP BY - используется для группирование одного или несколько столбцов. К этим группам могут применятся агрегатные функции.
Пример 1.
SELECT dept_id, SUM(salary), 'constant expression'
FROM emp
WHERE title = 'Warehouse Manager'
GROUP BY dept_id;
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
---------- ----------- -------------------
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
------------------------- ----------- ----------
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
WHERE SUM(salary) > 2000
GROUP BY title;
ERROR at line 1:
ORA-00934: group function is not allowed here
Комментарий:
В примере (к сожалению ошибочным), мы попытались отобразить суму заработка работников тех должностей, у которых сума больше чем 2000. С помощью оператора WHERE это не получиться сделать. Для того чтобы решить эту задачу нам нужно воспользоваться оператором HAVING.
Я Абрам Александр, бизнесмен, который смог возродить свой умирающий лесозаготовительный бизнес с помощью отправленного Богом кредитора, известного как Бенджамин Ли, Кредитный Консультант. Проживаю в Екатеринбурге Екатеринбург. Вы пытаетесь начать бизнес, погасить свой долг, расширить свой существующий, нуждаетесь в деньгах для покупки расходных материалов. Если у вас возникли проблемы с попыткой получить хорошую кредитную линию, я хочу, чтобы вы знали, что мистер Бенджамин проведет вас до конца. Это правильное место для вас, чтобы решить все ваши финансовые проблемы, потому что я живое свидетельство, и я не могу просто оставить это при себе, когда другие ищут способ быть финансово поднятым .. Я хочу, чтобы вы все связались с этим Богом, посланным кредитором используя детали, как указано в других, чтобы принять участие в этой прекрасной возможности Электронная почта: lfdsloans@outlook.com Или WhatsApp / Text + 1-989-394-3740.
ОтветитьУдалить