Sobes.tech
Junior — Middle

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

sobes.tech AI

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

SQL-ში, WHERE და HAVING პირობები გამოიყენება მონაცემების ფილტრაციისთვის, მაგრამ ისინი განლაგებულია სხვადასხვა ეტაპზე სვეტის დამუშავების პროცესში:

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

მაგალითი:

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

აქ პირველად ირჩევიან თანამშრომლები, რომელთა ხელფასი 50000-ზე მეტია (WHERE), შემდეგ მონაცემები გაერთიანებულია განყოფილებებით, და მხოლოდ განყოფილებები, სადაც თანამშრომლების რაოდენობა მეტია 10-ზე, გადიან HAVING ფილტრს.