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 ფილტრს.