Sobes.tech
Junior — Middle

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

sobes.tech AI

Отговор от AI

В SQL операторът WHERE се използва за филтриране на редове преди групиране, тоест той избира отделни записи от таблицата въз основа на условия. HAVING се прилага за филтриране на вече групирани данни, то есть след изпълнение на GROUP BY.

Пример:

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

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