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