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