В этом учебном пособии вы узнаете, как использовать MariaDB оператор HAVING с синтаксисом и примерами.
Описание
MariaDB оператор HAVING используется в сочетании с оператором GROUP BY, чтобы ограничить группы возвращаемых строк только теми, чье условие TRUE.
Синтаксис
Синтаксис оператора HAVING в MariaDB:
aggregate_function (expression)
FROM tables
[WHERE conditions]
GROUP BY expression1, expression2, .. expression_n
HAVING condition;
Параметры или аргументы
- aggregate_function
- Это может быть такая функция, как SUM, COUNT, MIN, MAX или AVG.
- expression1, expression2, .. expression_n
- Выражения, которые не заключены в агрегатную функцию, должны быть включены в предложение GROUP BY.
- WHERE conditions
- Необязательный. Это условия для выбора записей.
- HAVING condition
- Это еще одно условие, применяемое только к агрегированным результатам, чтобы ограничить группы возвращаемых строк. Только те группы, чье условие оценивается как TRUE, будут включены в набор результатов.
Пример - использование функции SUM
Рассмотрим пример использования оператора HAVING с функцией SUM в MariaDB.
Например:
1 2 3 4 5 |
SELECT site_id, SUM(file_size) AS "Total" FROM pages WHERE site_id < 100 GROUP BY site_id HAVING SUM(file_size) > 500; |
В этом примере оператора HAVING используется функция SUM для возврата site_id и суммы всех значений file_size, где site_id меньше 100. MariaDB оператор HAVING отфильтрует результаты так, что будут возвращены только те значения site_id у которых SUM(file_size) больше 500 .
Пример - использование функции COUNT
Рассмотрим, как использовать оператор HAVING с функцией COUNT в MariaDB.
Например:
1 2 3 4 5 |
SELECT site_id, COUNT(*) AS "Number of pages per site" FROM pages WHERE site_name in ('Google.com', 'Yandex.com') GROUP BY site_id HAVING COUNT(*) >= 999; |
В этом примере используется функция COUNT для возврата site_id и количества всех страниц (для этого site_id), которые имеют site_name либо "Google.com", либо "Yandex.com". MariaDB оператор HAVING отфильтрует результаты так, что будут возвращены только значения site_id с количеством страниц, большим или равным 999.
Пример - использование функции MIN
Далее давайте рассмотрим пример использования оператора HAVING с функцией MIN в MariaDB.
Например:
1 2 3 4 5 |
SELECT site_id, MIN(file_size) AS "Smallest File" FROM pages WHERE site_id < 50 GROUP BY site_id HAVING MIN(file_size) < 150; |
Этот пример использует функцию MIN в MariaDB для возврата site_id и минимального значения file_size (для этого site_id) где site_id меньше 50. Оператор HAVING будет возвращать только те значения site_id, где минимальное file_size меньше 150.
Пример - использование функции MAX
Наконец, давайте рассмотрим пример использования оператора HAVING в MariaDB с функцией MAX.
Например:
1 2 3 4 5 |
SELECT site_id, MAX(file_size) AS "Largest File" FROM pages WHERE site_id < 50 GROUP BY site_id HAVING MAX(file_size) > 2500; |
Этот пример использует функцию MAX, чтобы вернуть site_id и минимальный file_size (для этого site_id) где site_id меньше 50. Оператор HAVING будет возвращать только те значения site_id, где максимальное file_size больше 2500.