Junior — Middle
Каква е разликата между условието WHERE и HAVING при работа със SQL заявки?
sobes.tech AI
Отговор от AI
WHERE и HAVING са условия за филтриране в SQL, но те се прилагат на различни етапи от обработката на данните.
WHEREфилтрира редовете преди групирането. Използва се за избор на записи на ниво оригинални данни.HAVINGфилтрира групите, формирани от оператораGROUP BY. Прилага се след агрегирането.
Пример:
SELECT отдел, COUNT(*) като брой_служители
FROM служители
WHERE заплата > 50000 -- филтрираме служители с заплата > 50000
GROUP BY отдел
HAVING COUNT(*) > 10 -- избираме отдели с повече от 10 служители
Тук първо се избират служителите с заплата над 50000 (WHERE), след това данните се групират по отдели, и накрая се избират само онези отдели, където броят на служителите е по-голям от 10 (HAVING).