Junior — Middle
Kāda ir atšķirība starp HAVING un WHERE nosacījumiem, strādājot ar SQL vaicājumiem?
sobes.tech AI
Atbilde no AI
Galvenā atšķirība starp WHERE un HAVING SQL:
- WHERE filtrē rindas pirms grupēšanas (GROUP BY). Tas tiek piemērots atsevišķiem ierakstiem tabulā.
- HAVING filtrē grupas pēc grupēšanas. To izmanto nosacījumiem par agregētajām funkcijām (piemēram, COUNT, SUM).
Piemērs:
SELECT nodaļa, COUNT(*) kā darbinieku_skaits
FROM darbinieki
WHERE alga > 50000 -- filtrē darbiniekus ar algu virs 50000
GROUP BY nodaļa
HAVING COUNT(*) > 10 -- izvēlas nodaļas ar vairāk nekā 10 darbiniekiem
Šeit WHERE izvēlas rindas grupēšanai, bet HAVING filtrē jau grupētus datus.