Junior — Middle
Kāda ir atšķirība starp nosacījumiem WHERE un HAVING, strādājot ar SQL vaicājumiem?
sobes.tech AI
Atbilde no AI
WHERE un HAVING ir SQL nosacījumi ir, bet tie tiek piemēroti dažādos datu apstrādes posmos.
WHEREfiltrē rindas pirms grupēšanas. To izmanto, lai atlasītu ierakstus pēc sākotnējiem datiem.HAVINGfiltrē grupas, kas veidotas arGROUP BYoperatoru. To piemēro pēc agregācijas.
Piemērs:
SELECT nodaļa, COUNT(*) kā darbinieku_skaits
FROM darbinieki
WHERE alga > 50000 -- filtrē darbiniekus ar algu > 50000
GROUP BY nodaļa
HAVING COUNT(*) > 10 -- izvēlas nodaļas ar vairāk nekā 10 darbiniekiem
Šeit vispirms tiek atlasīti darbinieki ar algu virs 50000 (WHERE), tad dati tiek grupēti pēc nodaļām, un beigās tiek atlasītas tikai tās nodaļas, kurās ir vairāk nekā 10 darbinieku (HAVING).