Junior
Koja je razlika između naredbi WHERE i HAVING u SQL?
sobes.tech АИ
Одговор од АИ
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 |
| Агрегатне функције | Не може се користити директно | Може се користити |