Sobes.tech
Junior — Middle

რა განსხვავებაა HAVING და WHERE პირობით SQL-საათ მუშაობისას?

sobes.tech AI

პასუხი AI-სგან

SQL-ში WHERE და HAVING შორის ძირითადი განსხვავება:

  • WHERE ფილტრავს სვეტებს გაერთიანებამდე (GROUP BY). გამოიყენება ცალკეული ჩანაწერებისთვის.
  • HAVING ფილტრავს ჯგუფებს გაერთიანების შემდეგ. გამოიყენება აგრეგატული ფუნქციების (მაგალითად, COUNT, SUM) პირობით.

მაგალითი:

SELECT განყოფილება, COUNT(*) როგორც თანამშრომლების_სულელი
FROM თანამშრომლები
WHERE ხელფასი > 50000    -- ფილტრავს თანამშრომლებს, რომლებსაც ხელფასი მეტი 50000
GROUP BY განყოფილება
HAVING COUNT(*) > 10     -- არჩევს განყოფილებებს, სადაც მეტი 10 თანამშრომელია

აქ, WHERE არჩევს სვეტებს გრუპინგისთვის, ხოლო HAVING ფილტრავს უკვე გრუპირებულ მონაცემებს.