кодесурса
«SQL

Предложение SQL HAVING

script1adsense2code
script1adsense3code

Имея пункт

Предложение 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

Хотите улучшить вышеуказанную статью? Вносите свои заметки / комментарии / примеры через Disqus.

Предыдущая: Группировка по
Далее: ВЫБЕРИТЕ с помощью DISTINCT

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


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code