SQL - HAVING Klauzula


Filtriranje grupa na osnovu stanja

Klauzula HAVING obično se koristi s klauzulom GROUP BY za specificiranje uslova filtra za grupu. Klauzula HAVING može se koristiti samo s naredbom SELECT. Da biste to lakše razumjeli, pogledajmo sljedeće tabele zaposlenih i odjela.



Umjesto da pronađete samo ime zaposlenih i njihovih odjela, želite saznati imena onih odjela u kojima nema zaposlenih. U slučaju malih tabela možete jednostavno primijeniti lijevo spajanje i ručno provjeriti svaki odjel, ali pretpostavimo da tabela sadrži hiljade zaposlenih, to ne bi bilo tako lako. U ovoj situaciji možete koristiti klauzulu HAVING s klauzulom GROUP BY, ovako:

SELECT t1.dept_name, count(t2.emp_id) AS total_employees
FROM departments AS t1 LEFT JOIN employees AS t2
ON t1.dept_id = t2.dept_id
GROUP BY t1.dept_name
HAVING total_employees = 0;

Ako izvršite gornju izjavu, dobit ćete izlaz otprilike ovako: