Sobes.tech
Middle

Стандартен въпрос за SQL: каква е разликата между WHERE и HAVING?

sobes.tech AI

Отговор от AI

Основната разлика между WHERE и HAVING в SQL е в етапа, в който филтрират данните:

  • WHERE филтрира редовете преди групирането. Използва се за ограничаване на първоначалния набор от данни.
  • HAVING филтрира групите след прилагането на агрегатни функции и групиране (GROUP BY).

Пример:

SELECT отдел, COUNT(*) като брой_служители
FROM служители
WHERE заплата > 50000  -- филтрираме служители с заплата > 50000
GROUP BY отдел
HAVING COUNT(*) > 10      -- избираме отдели с повече от 10 служители

Тук WHERE ограничава началните редове, а HAVING крайните групи.