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
SQL iekšā, nosacījumi WHERE un HAVING tiek izmantoti datu filtrēšanai, bet tie tiek piemēroti dažādos vaicājuma apstrādes posmos:
WHEREfiltrē rindas pirms grupēšanas un agregācijas. Tas ierobežo datu kopu, kas tiks izmantota vaicājumā.HAVINGfiltrē grupas pēc agregācijas funkciju (piemēram,SUM,COUNT,AVG) piemērošanas. To izmanto, lai ierobežotu agregēto rezultātu skaitu.
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, WHERE izvēlas darbiniekus ar algu virs 50000, bet HAVING filtrē nodaļas, kurās ir vairāk nekā 10 darbinieku.