Предложение SQL HAVING
Имея пункт
Предложение SQL HAVING определяет условие поиска для группы или агрегата. HAVING обычно используется в предложении GROUP BY, но даже если вы не используете предложение GROUP BY, вы можете использовать HAVING для функционирования подобно предложению WHERE. Вы должны использовать HAVING с SQL SELECT.
Синтаксис:
SELECT <column_list> FROM <имя таблицы> ГДЕ <search_condition]> GROUP BY <столбцы> [HAVING] <search_condition]> [ORDER BY {order_expression [ASC | DESC]} [, ...]];
Параметры:
название | Описание |
---|---|
table_name | Наименование таблицы. |
column_list | Наименование столбцов таблицы. |
столбцы | Наименование столбцов, которые будут участвовать в группировке. |
Как работает предложение HAVING в SQL?
- Предложение select определяет столбцы.
- Предложение from предоставляет набор потенциальных строк для результата.
- Предложение where дает фильтр для этих потенциальных строк.
- Предложение group by разделяет строки таблицы на более мелкие группы.
- Предложение has дает фильтр для этих групповых строк.
Пример: предложение SQL HAVING
Следующий запрос отображает cust_country и количество клиентов для одной оценки для каждой cust_country со следующим условием:
1. количество клиентов для одной и той же «оценки» должно быть больше 2,
Образец таблицы: клиент
Код SQL:
SELECT cust_country,COUNT(grade)
FROM customer
GROUP BY cust_country
HAVING COUNT(grade)>2;
Пример вывода:
CUST_COUNTRY COUNT (GRADE) -------------------- ------------ США 4 Индия 10 Австралия 3 Канада 3 Великобритания 5
Наглядная презентация:
SQL, используя где
В следующем примере предложение SQL WHERE вместе с предложением HAVING используется для создания оператора выбора.
Пример:
Образец таблицы: клиент
Чтобы получить список значений cust_city, суммы начальных и средних значений, средних значений для параметра receive_amt и максимального значения payment_amt из таблицы клиентов с соблюдением следующих условий:
1. оценка таблицы клиента должна быть 2,
2. среднее значение receive_amt для каждой группы cust_city должно быть больше 500,
тогда можно использовать следующий оператор SQL:
Код SQL:
SELECT cust_city,SUM(opening_amt),
AVG(receive_amt),MAX(payment_amt)
FROM customer
WHERE grade=2
GROUP BY cust_city
HAVING AVG(receive_amt)>500;
Пример вывода:
CUST_CITY SUM (OPENING_AMT) AVG (RECEIVE_AMT) MAX (PAYMENT_AMT) ----------------------------------- --------------- - ---------------- ---------------- Бангалор 29000 8250 7000 Брисбан 7000 7000 9000 Лондон 10000 7000 7000 Мумбаи 7000 11000 9000 Нью-Йорк 3000 5000 2000 Торенто 8000 7000 7000
SQL с заказом по
В следующем примере предложение SQL WHERE вместе с предложением HAVING используется для выполнения запроса. Предложение ORDER BY размещает конечный результат в определенном порядке. По умолчанию порядок возрастает.
Пример:
Образец таблицы: клиент
Чтобы получить список значений cust_city, суммы начальных и средних значений, средних значений для параметра receive_amt и максимального значения payment_amt из таблицы клиентов с соблюдением следующих условий:
1. оценка таблицы клиента должна быть 2,
2. среднее значение receive_amt для каждой группы cust_city должно быть больше 500,
3. выходные данные должны быть расположены в порядке возрастания суммы (сумма_открытия),
тогда можно использовать следующий оператор SQL:
Код SQL:
SELECT cust_city,SUM(opening_amt),
AVG(receive_amt),MAX(payment_amt)
FROM customer
WHERE grade=2
GROUP BY cust_city
HAVING AVG(receive_amt)>500
ORDER BY SUM(opening_amt);
Пример вывода:
CUST_CITY SUM (OPENING_AMT) AVG (RECEIVE_AMT) MAX (PAYMENT_AMT) ----------------------------------- --------------- - ---------------- ---------------- Нью-Йорк 3000 5000 2000 Брисбан 7000 7000 9000 Мумбаи 7000 11000 9000 Торенто 8000 7000 7000 Лондон 10000 7000 7000 Бангалор 29000 8250 7000
Упражнения по SQL
- Упражнения по SQL, практика, решение
- SQL Получить данные из таблиц [33 Упражнения]
- Булевы и реляционные операторы SQL [12 упражнений]
- Подстановочные знаки SQL и специальные операторы [22 упражнения]
- Агрегатные функции SQL [25 упражнений]
- Вывод запроса форматирования SQL [10 упражнений]
- SQL-запросы к нескольким таблицам [7 упражнений]
- ФИЛЬТРАЦИЯ И СОРТИРОВКА в базе данных персонала [38 упражнений]
- SQL СОЕДИНЯЕТ
- SQL ПОДПИСИ
- SQL Union [9 упражнений]
- SQL View [16 упражнений]
- Управление учетными записями пользователей SQL [16 упражнение]
- База данных фильмов
- ОСНОВНЫЕ запросы к базе данных фильмов [10 упражнений]
- ПОДПИСКИ на фильм База данных [16 упражнений]
- ПРИСОЕДИНЯЕТСЯ к базе данных фильма [24 упражнения]
- Футбольная база
- Вступление
- ОСНОВНЫЕ запросы по футболу базы данных [29 упражнений]
- ПОДПИСКИ по футбольной базе данных [33 упражнения]
- База данных больницы
- База данных сотрудников
- ОСНОВНЫЕ запросы к базе данных сотрудников [115 упражнений]
- БРОНИРОВАНИЕ на сотрудника База данных [77 Упражнения]
- Еще не все!
Хотите улучшить вышеуказанную статью? Вносите свои заметки / комментарии / примеры через Disqus.
Предыдущая: Группировка по
Далее: ВЫБЕРИТЕ с помощью DISTINCT
Новый контент: Composer: менеджер зависимостей для PHP , R программирования