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 |
| Ագրեգատային ֆունկցիաներ | Չի կարող անմիջապես օգտագործվել | Կարող է օգտագործվել |