WHERE grup = 123
GROUP BY fam;
Столбец, заданный в предложении GROUP BY, необязательно должен быть задан в предложении SELECT. С другой стороны, если столбец из предложения GROUP BY входит в список SELECT, результат имеет больше смысла.
Если в одной и той же команде SELECT указаны как отдельные элементы данных, так и групповые функции, но пропущено предложение GROUP BY, описывающее эти отдельные элементы, выдается сообщение об ошибке.
Пример 2:
SELECT id_region, COUNT(name)
FROM Klienti;
*
ERROR at line 1:
ORA-00937: not a single-group group function
(Ошибка в строке 1:
групповая функция не для единственной группы).
Для исправления этой ошибки следует добавить предложение GROUP BY.
Группы внутри групп.
Сводные результаты по группам и подгруппам можно получить путем указания более чем одного столбца в предложении GROUP BY. В следующем примере количество людей подсчитывается не только по отделам, но и по должностям. Порядок сортировки, используемый по умолчанию, определяется порядком столбцов в предложении GROUP BY.
Пример 3: Вывод количества преподавателей по должностям внутри кафедр (таблица Dolzhn).
|
|
SELECT kaf, dolzhn, COUNT(*) as “Количество”
FROM Dolzhn
GROUP BY kaf, dolzhn;
Предложение HAVING.
Предложение WHERE для исключения групп не используется. Для исключения целиком некоторых групп следует пользоваться предложением HAVING.
Пример 4: Вывод номера отдела и средней заработной платы для тех отделов, где средняя заработная плата превышает 10000.
SELECT id_otdel, AVG(salary)
FROM emp