Sobes.tech
Junior

Mi a különbség a WHERE és a HAVING utasítások között SQL-ben?

sobes.tech MI

Válasz az MI-től

A WHERE az FROM eredményének soraira alkalmazódik a csoportosítás előtt, és szűri az egyes sorokat. A HAVING a csoportosítás után alkalmazódik, és szűri a GROUP BY segítségével kialakított csoportokat.

Példa:

Tegyük fel, hogy van egy orders nevű táblánk, amelyben a customer_id, order_date és amount oszlopok találhatók.

Keressük meg az összes olyan vásárlót, akinek a rendeléseinek összértéke meghaladja az 1000-et:

SELECT customer_id, SUM(amount)
FROM orders
GROUP BY customer_id
HAVING SUM(amount) > 1000;

Keressük meg az összes olyan rendelést, amelynek összege több mint 1000:

SELECT customer_id, order_date, amount
FROM orders
WHERE amount > 1000;

Összehasonlító táblázat:

Jellemző WHERE HAVING
Alkalmazás Egyedi sorokra a csoportosítás előtt Csoportokra a csoportosítás után
Használja Az FROM oszlopokat Aggregált függvényeket és az GROUP BY oszlopokat
Lefutás A GROUP BY előtt A GROUP BY után
Aggregált függvények Nem használható közvetlenül Használható