Как использовать предложение MySQL HAVING, если сумма больше порогового значения

Kak Ispol Zovat Predlozenie Mysql Having Esli Summa Bol Se Porogovogo Znacenia



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

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







Как использовать предложение MySQL HAVING, если сумма больше порогового значения

Вы применяете предложение MySQL HAVING с предложением GROUP BY. Его синтаксис следующий:



SELECT выражение1, .. выражение_n, агрегатная_функция (выражение) FROM имя_таблицы GROUP BY выражение HAVING <условие>;

Вы можете использовать различные агрегатные функции, включая SUM(), COUNT(), MIN(), MAX() и AVG(). Обратите внимание, что любое выражение, которое не используется с агрегатной функцией, должно упоминаться в предложении GROUP BY.



Что касается условия, оно применяется к агрегированным результатам, где вы указываете порог, который вы хотите проверить с помощью условия. Например, вы можете применить функцию SUM() и проверить, соответствует ли выражение пороговому значению 10. Мы узнаем об этом больше в приведенных примерах.





Чтобы понять, как работает предложение HAVING, давайте создадим пример базы данных, с которой мы будем работать. Назовем нашу базу данных «register».



Давайте также создадим таблицу с именем «workers», чтобы содержать наши различные столбцы и типы данных. Здесь мы работаем с данными работников, такими как имя, часы, дата работы и т. д.

Проверив описание нашей таблицы, мы можем убедиться, что все столбцы созданы успешно.

Вставляем значения в нашу таблицу. У нас есть разные работники, которые работают в разные часы и дни. Используя эти данные, мы можем применить предложение HAVING, если сумма превышает пороговое значение.

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

Если у нас есть пороговое значение для общего количества часов, равное 7, мы выполняем нашу команду следующим образом:

ВЫБЕРИТЕ имя, СУММА (часы) КАК total_hours_per_person ОТ работников СГРУППИРОВАТЬ ПО имени ИМЕЕТ сумма (часы) > 7;

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

Предположим, мы хотим классифицировать отделы, чтобы увидеть те, в которых работники работают больше, чем пороговое значение в 7 часов. Мы выбираем отдел, затем используем агрегатную функцию SUM с часами и группируем строки, используя выражение отдела.

Наша команда выглядит следующим образом:

ВЫБЕРИТЕ отдел, СУММА (часы) КАК total_hours_per_department ОТ рабочих СГРУППИРОВАТЬ ПО отделу, ИМЕЮЩЕМУ сумма (часы)> 7;

Из результатов мы можем убедиться, что нам удалось отфильтровать строки, чтобы оставить только те, сумма часов которых превышает пороговое значение.

Точно так же, если мы хотим отфильтровать рабочую дату с наибольшим количеством работающих работников, превышающим порог в 10 часов, мы выбираем выражение рабочей даты. Затем мы используем функцию СУММ с часами и группируем строки, используя рабочую дату.

Команда выглядит следующим образом:

ВЫБЕРИТЕ рабочую дату, СУММ(часы) КАК самое высокое_часы_работы ОТ рабочих СГРУППИРОВАТЬ ПО рабочей дате, ИМЕЮЩУЮ сумму(часы)> 10;

После выполнения команды результаты показывают, что только для одной рабочей даты сумма общего количества часов превышает пороговое значение:

Заключение

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