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