Sobes.tech
Junior — Middle

Каква е разликата между условието HAVING и условието WHERE при работа със SQL заявки?

sobes.tech AI

Отговор от AI

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

  • WHERE филтрира редове преди групирането (GROUP BY). Той се прилага към отделните записи в таблицата.
  • HAVING филтрира групите след изпълнение на групирането. Използва се за условия върху агрегатни функции (например, COUNT, SUM).

Пример:

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

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