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