Sobes.tech
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.