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