Sobes.tech
Junior

Kāda ir atšķirība starp SQL vaicājumiem WHERE un HAVING?

sobes.tech AI

Atbilde no AI

WHERE tiek ir piemēro pirms grupēšanas un filtrē FROM rezultāta rindas. HAVING tiek piemērots pēc grupēšanas un filtrē grupas, kas veidotas ar GROUP BY.

Piemērs:

Pieņemsim, ka mums ir tabula orders ar kolonnām customer_id, order_date un amount.

Atrodiet visus klientus, kuru kopējā pasūtījumu summa pārsniedz 1000:

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

Atrodiet visus pasūtījumus ar summu vairāk nekā 1000:

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

Salīdzināšanas tabula:

Īpašība WHERE HAVING
Pielietojums Uz atsevišķām rindām pirms grupēšanas Uz grupētām rindām pēc grupēšanas
Izmanto No FROM kolonnām Aritmētiskās funkcijas un kolonnas no GROUP BY
Tiek izpildīts Pirms GROUP BY Pēc GROUP BY
Aritmētiskās funkcijas Tieši nevar izmantot Var izmantot