НАЙКРАЩИЙ САЙТ ДЛЯ ВЕБ-РОЗРОБНИКІВ

SQL Підручник

SQL СТАРТ SQL Інтро SQL Синтаксис SQL SELECT SQL SELECT DISTINCT SQL WHERE SQL ORDER BY SQL AND SQL OR SQL NOT SQL INSERT INTO SQL NULL SQL UPDATE SQL DELETE SQL SELECT TOP SQL MIN() and MAX() SQL COUNT() SQL SUM() SQL AVG() SQL LIKE SQL Підстановочні символи SQL IN SQL BETWEEN SQL Псевдоніми SQL JOIN SQL INNER JOIN SQL LEFT JOIN SQL RIGHT JOIN SQL FULL OUTER JOIN SQL Self JOIN SQL UNION SQL GROUP BY SQL HAVING SQL EXISTS SQL ANY, ALL SQL SELECT INTO SQL INSERT INTO SELECT SQL CASE SQL NULL Функції SQL Зберігаючи процедури SQL Коментарі SQL Оператори

SQL База даних

SQL Create DB SQL Drop DB SQL Backup DB SQL Create Table SQL Drop Table SQL Alter Table SQL Constraints SQL Not Null SQL Unique SQL Primary Key SQL Foreign Key SQL Check SQL Default SQL Index SQL Auto Increment SQL Dates SQL Views SQL Injection SQL Hosting SQL Типи даних

SQL Довідники

SQL Ключові слова MySQL Функції SQL Серверні функції MS Access Функції SQL Швидкий довідник

SQL Приклади

SQL Приклади SQL Редактор SQL Вікторина SQL Вправи SQL Bootcamp SQL Сертифікат

SQL. W3Schools українською. Уроки для початківців

En

SQL HAVING Пропозиція


SQL HAVING Пропозиція

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

HAVING Синтаксис

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

Демонстраційна база даних

Нижче наведено вибірку з таблиці "Customers" ("Клієнти") зразка бази даних Northwind:

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

SQL HAVING Приклад

У наступній 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;
Спробуйте самі »

Демонстраційна база даних

Нижче наведено вибір із таблиці "Orders" ("Замовлення") зразка бази даних Northwind:

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

І вибірка із таблиці "Employees" ("Співробітники"):

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 інструкція перераховує, якщо співробітники "Davolio" або "Fuller" зареєстрували понад 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;
Спробуйте самі »