SQL - GROUP BY Klauzula


Grupisanje redova

Klauzula GROUP BY koristi se zajedno s naredbom SELECT i agregatnim funkcijama za grupisanje redova zajedničkim vrijednostima kolona. Da bismo to lakše razumjeli, pogledajmo sljedeće tabele zaposlenih (employees) i odjela (departments).



Recimo, da samo umjesto ime zaposlenih i njihove odjele, želite saznati ukupan broj zaposlenih u svakom odjelu, šta tada da radite? U slučaju malih tabela možete jednostavno primijeniti lijevo spajanje i izbrojati broj zaposlenih, ali pretpostavimo da ako tabela sadrži hiljade zaposlenih, to ne bi bilo tako lako. U ovoj situaciji možete koristiti klauzulu GROUP BY s naredbom SELECT, 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;

Ako izvršite gornju izjavu, dobićete otprilike ovakav izlaz:



U sljedećoj ćete lekciji naučiti kako odrediti uslov pretraživanja za grupu pomoću klauzule HAVING s klauzulom GROUP BY.