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

  • WHERE filtrē rindas pirms grupēšanas un agregācijas. Tas ierobežo datu kopu, kas tiks izmantota vaicājumā.
  • HAVING filtrē 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.