SQL HAVING

SQL HAVING



DEFINICJA

HAVING służy do filtrowania wyników zapytania z grupowaniem. Działa na grupach wierszy a nie na pojedynczych wierszach.

SQL HAVING

SELECT
nazwy_kolumy(kolumn)
FROM
nazwa_tabeli
GROUP BY  
kryteria_grupowania
HAVING
kryteria_filtrowania

 


Przykład zastosowania HAVING (baza Adventureworks)

Wyświetl wartość poszczególnych zamówień, których wartość jest większa niż 15000.

SELECT
SalesOrderID AS IdZamówienia
,SUM(UnitPrice) AS WartośćZamówienia
FROM
Sales.SalesOrderDetail
GROUP BY
SalesOrderID
HAVING
SUM(UnitPrice) > 15000


Przykład zastosowania HAVING (baza Northwind)

Zlicz ile pozycji mają poszczególne zamówienia. Wyświetl tylko te zamówienia, które mają powyżej 2 pozycje i posortuj je malejąco.

SELECT
OrderID AS IdZamówienia
,COUNT(*) AS IlośćPozycji
FROM
[Order Details]
GROUP BY
OrderID
HAVING 
COUNT(*) > 2
ORDER BY
IlośćPozycji DESC