Sobes.tech
Junior

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

sobes.tech AI

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

WHERE կիրառվում է խմբագրման առաջ և ֆիլտրում է FROM արդյունքի տողերը: HAVING կիրառվում է խմբագրման հետո և ֆիլտրում է GROUP BY-ով ձևավորված խմբերը:

Օրինակ:

Ենթադրենք, ունենք orders աղյուսակ, որը պարունակում է customer_id, order_date և amount սյունակները:

գտեք բոլոր հաճախորդներին, որոնց ընդհանուր պատվերի գումարը գերազանցում է 1000:

SELECT customer_id, SUM(amount)
FROM orders
GROUP BY customer_id
HAVING SUM(amount) > 1000;

գտեք բոլոր պատվերները, որոնց գումարը ավելի քան 1000 է:

SELECT customer_id, order_date, amount
FROM orders
WHERE amount > 1000;

համեմատության աղյուսակ՝

Գծագիր WHERE HAVING
Կիրառում Անհատական տողերի վրա նախքան խմբավորումը Խմբավորված տողերի վրա հետո խմբավորումը
Օգտագործում FROM-ից սյունակներ Ագրեգատային ֆունկցիաներ և GROUP BY-ից սյունակներ
Կատարվում է Նախքան GROUP BY Հետո GROUP BY
Ագրեգատային ֆունկցիաներ Չի կարող անմիջապես օգտագործվել Կարող է օգտագործվել