Sobes.tech
Junior — Middle

Kā atšķiras nosacījuma operatori WHERE un HAVING SQL un kāds ir to mērķis?

sobes.tech AI

Atbilde no AI

SQL operātors WHERE tiek izmantots, lai filtrētu rindas pirms grupēšanas, tas ir, tas izvēlas atsevišķus ierakstus no tabulas pēc nosacījumiem. HAVING tiek izmantots, lai filtrētu jau grupētus datus, tas ir, pēc GROUP BY izpildes.

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 šādiem darbiniekiem

Tādējādi WHERE filtrē sākotnējos datus, bet HAVING – agregēto funkciju un grupēšanas rezultātus.