Sobes.tech
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.