Учебник по MySQL

ГЛАВНАЯ СТРАНИЦА MySQL Введение в MySQL СУРБД MySQL

MySQL SQL

MySQL SQL ВЫБРАТЬ MySQL MySQL ГДЕ MySQL И, ИЛИ, НЕ MySQL ЗАКАЗАТЬ ПО MySQL ВСТАВИТЬ В Значения MySQL NULL ОБНОВЛЕНИЕ MySQL MySQL УДАЛИТЬ ПРЕДЕЛ MySQL MySQL МИН и МАКС MySQL COUNT, СРЕДНЯЯ, СУММА MySQL НРАВИТСЯ Подстановочные знаки MySQL MySQL IN MySQL МЕЖДУ Псевдонимы MySQL MySQL присоединяется ВНУТРЕННЕЕ СОЕДИНЕНИЕ MySQL ЛЕВОЕ СОЕДИНЕНИЕ MySQL MySQL ПРАВОЕ СОЕДИНЕНИЕ ПЕРЕКРЕСТНОЕ СОЕДИНЕНИЕ MySQL Самостоятельное присоединение к MySQL СОЕДИНЕНИЕ MySQL MySQL СГРУППИРОВАТЬ ПО MySQL ИМЕЕТ MySQL СУЩЕСТВУЕТ MySQL ЛЮБОЙ, ВСЕ MySQL ВСТАВИТЬ ВЫБРАТЬ СЛУЧАЙ MySQL Нулевые функции MySQL Комментарии MySQL Операторы MySQL

База данных MySQL

MySQL Создать БД Удаление базы данных MySQL MySQL Создать таблицу Таблица удаления MySQL Таблица изменений MySQL Ограничения MySQL MySQL не нулевой Уникальный MySQL Первичный ключ MySQL Внешний ключ MySQL Проверка MySQL MySQL по умолчанию Индекс создания MySQL Автоматическое увеличение MySQL Даты MySQL Представления MySQL

Ссылки на MySQL

Типы данных MySQL Функции MySQL

Примеры MySQL

Примеры MySQL Викторина MySQL MySQL-упражнения

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


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

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

Имея синтаксис

SELECT column_name(s)
FROM table_name
WHERE condition
GROUP BY column_name(s)
HAVING condition
ORDER BY column_name(s);

Демонстрационная база данных

Ниже приведена выборка из таблицы «Клиенты» в образце базы данных «Борей»:

CustomerID CustomerName ContactName Address City PostalCode Country
1

Alfreds Futterkiste Maria Anders Obere Str. 57 Berlin 12209 Germany
2 Ana Trujillo Emparedados y helados Ana Trujillo Avda. de la Constitución 2222 México D.F. 05021 Mexico
3 Antonio Moreno Taquería Antonio Moreno Mataderos 2312 México D.F. 05023 Mexico
4

Around the Horn Thomas Hardy 120 Hanover Sq. London WA1 1DP UK
5 Berglunds snabbköp Christina Berglund Berguvsvägen 8 Luleå S-958 22 Sweden

MySQL ИМЕЕТ Примеры

В следующем операторе SQL указано количество клиентов в каждой стране. Включать только страны с более чем 5 клиентами:

Пример

SELECT COUNT(CustomerID), Country
FROM Customers
GROUP BY Country
HAVING COUNT(CustomerID) > 5;

Следующая инструкция SQL перечисляет количество клиентов в каждой стране, отсортированных по возрастанию (включает только страны с более чем 5 клиентами):

Пример

SELECT COUNT(CustomerID), Country
FROM Customers
GROUP BY Country
HAVING COUNT(CustomerID) > 5
ORDER BY COUNT(CustomerID) DESC;


Демонстрационная база данных

Ниже приведен выбор из таблицы «Заказы» в образце базы данных «Борей»:

OrderID CustomerID EmployeeID OrderDate ShipperID
10248 90 5 1996-07-04 3
10249 81 6 1996-07-05 1
10250 34 4 1996-07-08 2

И выборка из таблицы "Сотрудники":

EmployeeID LastName FirstName BirthDate Photo Notes
1 Davolio Nancy 1968-12-08 EmpID1.pic Education includes a BA....
2 Fuller Andrew 1952-02-19 EmpID2.pic Andrew received his BTS....
3 Leverling Janet 1963-08-30 EmpID3.pic Janet has a BS degree....

Больше примеров HAVING

Следующая инструкция SQL перечисляет сотрудников, которые зарегистрировали более 10 заказов:

Пример

SELECT Employees.LastName, COUNT(Orders.OrderID) AS NumberOfOrders
FROM (Orders
INNER JOIN Employees ON Orders.EmployeeID = Employees.EmployeeID)
GROUP BY LastName
HAVING COUNT(Orders.OrderID) > 10;

В следующем операторе SQL указано, зарегистрировали ли сотрудники «Даволио» или «Фуллер» более 25 заказов:

Пример

SELECT Employees.LastName, COUNT(Orders.OrderID) AS NumberOfOrders
FROM Orders
INNER JOIN Employees ON Orders.EmployeeID = Employees.EmployeeID
WHERE LastName = 'Davolio' OR LastName = 'Fuller'
GROUP BY LastName
HAVING COUNT(Orders.OrderID) > 25;