MYSQL klauzula GROUP BY koristi se za prikupljanje podataka iz više zapisa i grupiranje rezultata prema jednom ili više stupaca. Obično se koristi u naredbi SELECT.
Također možete koristiti neke agregatne funkcije kao što su COUNT, SUM, MIN, MAX, AVG itd. na grupiranom stupcu.
Sintaksa:
SELECT expression1, expression2, ... expression_n, aggregate_function (expression) FROM tables [WHERE conditions] GROUP BY expression1, expression2, ... expression_n;
Parametri
izraz1, izraz2, ... izraz_n: Određuje izraze koji nisu enkapsulirani unutar agregatne funkcije i moraju biti uključeni u klauzulu GROUP BY.
funkcija_agregata: Određuje funkciju kao što je SUM, COUNT, MIN, MAX ili AVG itd. tablice: Određuje tablice iz kojih želite dohvatiti zapise. Mora postojati barem jedna tablica navedena u klauzuli FROM.
WHERE uvjeti: Nije obavezno. Određuje uvjete koji moraju biti ispunjeni da bi zapisi bili odabrani.
(i) MySQL klauzula GROUP BY s funkcijom COUNT
Razmotrite tablicu pod nazivom 'tablica časnika' koja ima sljedeće zapise.
pretvorba i kasting java tipa
Sada, izbrojimo broj gradova koji se ponavljaju u stupcu adresa.
Izvršite sljedeći upit:
SELECT address, COUNT(*) FROM officers GROUP BY address;
Izlaz:
(ii) MySQL GROUP BY klauzula s funkcijom SUM
Uzmimo tablicu 'zaposlenici' koja ima sljedeće podatke.
Sada će sljedeći upit GROUP BY primjera pomoću funkcije SUM i vratiti emp_name i ukupno radno vrijeme svakog zaposlenika.
Izvršite sljedeći upit:
sonu nigam
SELECT emp_name, SUM(working_hours) AS 'Total working hours' FROM employees GROUP BY emp_name;
Izlaz:
(iii) MySQL klauzula GROUP BY s funkcijom MIN
Sljedeći primjer navodi minimalno radno vrijeme zaposlenika iz tablice 'zaposlenici'.
Izvršite sljedeći upit:
SELECT emp_name, MIN(working_hours) AS 'Minimum working hour' FROM employees GROUP BY emp_name;
Izlaz:
(iv) MySQL klauzula GROUP BY s funkcijom MAX
Sljedeći primjer specificira maksimalno radno vrijeme zaposlenika iz tablice 'zaposlenici'.
Izvršite sljedeći upit:
SELECT emp_name, MAX (working_hours) AS 'Minimum working hour' FROM employees GROUP BY emp_name;
Izlaz:
(v) MySQL GROUP BY klauzula s AVG funkcijom
Sljedeći primjer navodi prosječno radno vrijeme zaposlenika iz tablice 'zaposlenici'.Izvršite sljedeći upit:
SELECT emp_name, AVG(working_hours) AS 'Average working hour' FROM employees GROUP BY emp_name;
Izlaz: