Sobes.tech
Junior — Middle

Ինչ է տարբերությունը WHERE և HAVING պայմանների միջև SQL հարցումների ժամանակ?

sobes.tech AI

Պատասխան AI-ից

WHERE և HAVING — ը SQL-ում ֆիլտրային պայմաններ են, որոնք կիրառվում են տվյալների մշակման տարբեր փուլերում:

  • WHERE ֆիլտրում է տողերը նախ խմբավորումը։ Օգտագործվում է սկզբնական տվյալների մակարդակով գրառումները ընտրելու համար։
  • HAVING ֆիլտրում է GROUP BY հրահանգով ձևավորված խմբերը։ Կիրառվում է հետո հավաքագրման։

Օրինակ՝

SELECT բաժին, COUNT(*) որպես աշխատակիցների_համար
FROM աշխատողներ
WHERE աշխատավարձ > 50000  -- ֆիլտրում ենք աշխատողներին, որոնց աշխատավարձը > 50000
GROUP BY բաժին
HAVING COUNT(*) > 10      -- ընտրում ենք բաժիններ, որտեղ ավելի քան 10 աշխատող կա

Այստեղ նախ ընտրվում են աշխատողներ, որոնց աշխատավարձը գերազանցում է 50000 (WHERE), ապա տվյալները խմբագրվում են բաժիններով, և վերջում ընտրվում են միայն այն բաժինները, որտեղ աշխատողների թիվը մեծ է 10-ից (HAVING