Sobes.tech
Junior — Middle

Обяснете разликите между оператора HAVING и условието WHERE в SQL и в кои случаи трябва да се използват.

sobes.tech AI

Отговор от AI

В SQL условието WHERE филтрира редовете преди групирането, а HAVING — след него.

  • WHERE се прилага към отделните редове на таблицата и ограничава набора от данни, който ще бъде агрегиране.
  • HAVING се прилага към резултатите от агрегатните функции и филтрира групите, формирани с операторa GROUP BY.

Пример:

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

Използвайте WHERE за филтриране на изходните данни, а HAVING — за филтриране на агрегирани резултати.