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 ֆիլտրով։