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