кодесурса
«MySQL

PostgreSQL HAVING

script1adsense2code
script1adsense3code

ИМЕЮЩИЙ пункт

Предложение HAVING используется для указания того, какие отдельные группы должны отображаться, то есть группы желаний, которые вы возвращаете на основе агрегатных функций.

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

Когда GROUP BY не использует HAVING, работает как предложение WHERE.

Разница между ИМ и ГДЕ

Предложение WHERE с ORDER BY используется для условного извлечения или отдельных строк.
HAVING ГДЕ
Предложение HAVING используется для условного извлечения строк из сгруппированного результата.
Применяется только для групп в целом. Применяет только отдельные строки.
HAVING не может использовать без группировки. ГДЕ можно использовать без группировки.

Синтаксис:

 ВЫБЕРИТЕ [DISTINCT] <column_list> | <Выражение>
ОТ <таблицы> [, <таблица>] [ГДЕ <условие>]
GROUP BY <столбец | выражение>
[ИМЕЕТ <условие>]
<Условие>

параметры

название Описание
column_list Наименование столбцов
Таблица Название таблицы
DISTINCT Этот пункт не является обязательным. Это указывает на уникальность.
выражение Это могут быть аргументы или заявления и т. Д.
состояние Это критерии запроса.

PostgreSQL, имеющий пример1

Образец таблицы

«PostgreSQL

Если мы хотим отобразить список средней зарплаты для всех отделов, имеющих более 3 сотрудников из таблицы сотрудников , можно использовать следующий SQL.

SQL

Код:

SELECT deptno, AVG(salary)
FROM employee
GROUP BY deptno
HAVING COUNT(*)>3;

Выход:

«PostgreSQL

PostgreSQL GROUP BY с MAX

Если мы хотим получить список всех сотрудников, чья максимальная зарплата превышает 8000, из таблицы сотрудников , можно использовать следующий SQL.

SQL

Код:

SELECT designame, MAX(salary)
FROM employee
GROUP BY designame
HAVING MAX(salary)>8000;

Выход:

«PostgreSQL

PostgreSQL ЕСТЬ И ГДЕ

Если мы хотим перечислить общую зарплату, максимальную и минимальную зарплату, а также среднюю зарплату по назначению сотрудников, которая относится к отделу № 15, а зарплата составляет более 8000 из таблицы сотрудников , можно использовать следующий SQL. Порядок по умолчанию ORDER BY возрастает.

SQL

Код:

SELECT designame, SUM(salary),MAX(salary),MIN(salary),AVG(salary)
FROM employee
WHERE deptno=15
GROUP BY designame
HAVING AVG(salary)>7000;

Выход:

«PostgreSQL

объяснение

В приведенном выше примере предложение WHERE будет извлекать строки отдела 15 из таблицы сотрудников. Предложение GROUP BY будет группировать извлеченное обозначение результата и применять агрегатные функции. После создания группы в предложении HAVING отобразятся строки, удовлетворяющие указанному условию.

PostgreSQL ЕСТЬ И ЗАКАЗАТЬ

Если мы хотим перечислить общую зарплату, максимальную и минимальную зарплату, а также среднюю зарплату назначенных сотрудников, которая относится к отделу № 15, и зарплата составляет более 8000 в соответствии с возрастающим порядком сумм (зарплата) из таблицы сотрудников, следующий SQL можно использовать. Порядок по умолчанию ORDER BY возрастает.

SQL

Код:

SELECT designame, SUM(salary),MAX(salary),MIN(salary),AVG(salary)
FROM employee
WHERE deptno=15
GROUP BY designame
HAVING AVG(salary)>7000
ORDER BY SUM(salary);

Выход:

«PostgreSQL

Предыдущая: ЗАКАЗАТЬ ПО
Следующая: АГРЕГАТНЫЕ ФУНКЦИИ

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


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code