Sobes.tech
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
Агрегатне функције Не може се користити директно Може се користити