Sobes.tech
Middle

Ի՞նչ տարբերություններ կան SQL-ում WHERE և HAVING օպերատորների միջև։

sobes.tech AI

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

WHERE ֆիլտրում է տողերը առաջ խմբագրման (GROUP BY), իսկ HAVING ֆիլտրում է խմբերը հետո խմբագրման։ WHERE կարող է օգտագործել սյունակներ, որոնք չեն գտնվում SELECT-ում, HAVING սովորաբար օգտագործում է ամփոփիչ ֆունկցիաներ կամ GROUP BY-ում առկա սյունակներ։

Օրինակ՝

SELECT
    category,
    COUNT(*) as total_items
FROM
    products
WHERE
    price > 10 // Ֆիլտրում ենք ապրանքները խմբագրման առաջ ըստ կատեգորիայի
GROUP BY
    category
HAVING
    COUNT(*) > 5; // Ֆիլտրում ենք կատեգորիաները, որոնց մեջ ավելի քան 5 ապրանք կա

Համեմատություն՝

Օպերատոր Մասին Կիրառվում է Կարող է օգտագործել ամփոփիչ ֆունկցիաներ Գումարած՝ GROUP BY-ի հետ կարգը
WHERE Տողերի ֆիլտրում Անհատական տողեր Ոչ Մինչև
HAVING Խմբերի ֆիլտրում Տողերի խմբեր Այո Հետո