Sobes.tech
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 служители.