SQL kurz

SQL HOME Úvod do SQL Syntaxe SQL SQL Select SQL Select Distinct SQL Kde SQL A nebo ne Pořadí SQL podle SQL Vložit do Hodnoty SQL Null Aktualizace SQL SQL Odstranit SQL Select Top SQL Min a Max Počet SQL, průměr, součet SQL Like Zástupné znaky SQL SQL In SQL mezi Aliasy SQL SQL se připojí SQL Vnitřní spojení SQL Levé připojení SQL Right Join Plné připojení k SQL SQL Self Join SQL Union SQL Group By SQL mít SQL existuje SQL Any, All SQL Select Into SQL Vložit do výběru Případ SQL Funkce SQL Null SQL uložené procedury Komentáře SQL Operátoři SQL

SQL databáze

SQL Vytvořit DB SQL Drop DB SQL Backup DB Vytvořit tabulku SQL SQL Drop Table SQL Alter Table Omezení SQL SQL Not Null Jedinečný SQL Primární klíč SQL cizí klíč SQL Kontrola SQL Výchozí SQL SQL index Automatické zvýšení SQL SQL data SQL pohledy SQL Injection SQL Hosting SQL datové typy

SQL reference

Klíčová slova SQL Funkce MySQL Funkce serveru SQL Funkce MS Access SQL Quick Ref

Příklady SQL

Příklady SQL SQL kvíz SQL cvičení SQL certifikát

Klauzule SQL HAVING


Klauzule SQL HAVING

Klauzule HAVINGbyla přidána do SQL, protože WHEREklíčové slovo nelze použít s agregačními funkcemi.

HAVING Syntaxe

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

Demo databáze

Níže je uveden výběr z tabulky „Zákazníci“ v ukázkové databázi 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 MÁ příklady

Následující příkaz SQL uvádí počet zákazníků v každé zemi. Zahrňte pouze země s více než 5 zákazníky:

Příklad

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

Následující příkaz SQL uvádí počet zákazníků v každé zemi, seřazené od nejvyšší k nejnižší (zahrnuje pouze země s více než 5 zákazníky):

Příklad

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


Demo databáze

Níže je uveden výběr z tabulky "Objednávky" v ukázkové databázi 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

A výběr z tabulky "Zaměstnanci":

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....

Další příklady

Následující příkaz SQL uvádí zaměstnance, kteří zaregistrovali více než 10 objednávek:

Příklad

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;

Následující příkaz SQL uvádí, zda zaměstnanci "Davolio" nebo "Fuller" zaregistrovali více než 25 objednávek:

Příklad

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;