Junior — Middle
Kāda ir atšķirība starp HAVING un WHERE nosacījumiem, izveidojot SQL vaicājumus?
sobes.tech AI
Atbilde no AI
SQL vaidos WHERE un HAVING nosacījumi tiek izmantoti datu filtrēšanai, taču tie tiek piemēroti dažādos vaicājuma apstrādes posmos:
- WHERE filtrē rindas pirms grupēšanas. To izmanto, lai ierobežotu datu kopu, kas tiks agregēta.
- HAVING filtrē grupas pēc tam, kad ir piemērotas agregācijas funkcijas (piemēram, SUM, COUNT).
Piemērs:
SELECT nodaļa, COUNT(*) kā darbinieku_skaits
FROM darbinieki
WHERE alga > 50000 -- filtrēšana pēc algas pirms grupēšanas
GROUP BY nodaļa
HAVING COUNT(*) > 10; -- grupu filtrēšana 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 tikai nodaļas ar vairāk nekā 10 darbiniekiem tiek iekļautas HAVING filtrā.