Klauzule MYSQL GROUP BY se používá ke shromažďování dat z více záznamů a seskupování výsledků podle jednoho nebo více sloupců. Obvykle se používá v příkazu SELECT.
řetězec nahradit vše java
Ve seskupeném sloupci můžete také použít některé agregační funkce jako COUNT, SUM, MIN, MAX, AVG atd.
Syntax:
SELECT expression1, expression2, ... expression_n, aggregate_function (expression) FROM tables [WHERE conditions] GROUP BY expression1, expression2, ... expression_n;
Parametry
výraz1, výraz2, ... výraz_n: Určuje výrazy, které nejsou zapouzdřeny v agregační funkci a musí být zahrnuty v klauzuli GROUP BY.
agregační_funkce: Určuje funkce jako tabulky SUM, COUNT, MIN, MAX nebo AVG atd.: Určuje tabulky, odkud chcete záznamy načíst. V klauzuli FROM musí být uvedena alespoň jedna tabulka.
KDE podmínky: Je to nepovinné. Specifikuje podmínky, které musí být splněny pro výběr záznamů.
(i) Klauzule MySQL GROUP BY s funkcí COUNT
Zvažte tabulku nazvanou „tabulka úředníků“, která má následující záznamy.
Nyní spočítejme opakující se počet měst ve sloupci adresa.
Proveďte následující dotaz:
SELECT address, COUNT(*) FROM officers GROUP BY address;
Výstup:
(ii) Klauzule MySQL GROUP BY s funkcí SUM
Vezměme si tabulku „zaměstnanců“ s následujícími údaji.
Nyní následující dotaz seskupí příklad pomocí funkce SUM a vrátí název_emp a celkovou pracovní dobu každého zaměstnance.
Proveďte následující dotaz:
SELECT emp_name, SUM(working_hours) AS 'Total working hours' FROM employees GROUP BY emp_name;
Výstup:
(iii) Klauzule MySQL GROUP BY s funkcí MIN
Následující příklad specifikuje minimální pracovní dobu zaměstnanců z tabulky 'zaměstnanci'.
Proveďte následující dotaz:
SELECT emp_name, MIN(working_hours) AS 'Minimum working hour' FROM employees GROUP BY emp_name;
Výstup:
(iv) Klauzule MySQL GROUP BY s funkcí MAX
Následující příklad specifikuje maximální pracovní dobu zaměstnanců z tabulky 'zaměstnanci'.
Proveďte následující dotaz:
SELECT emp_name, MAX (working_hours) AS 'Minimum working hour' FROM employees GROUP BY emp_name;
Výstup:
(v) Klauzule MySQL GROUP BY s funkcí AVG
Následující příklad specifikuje průměrnou pracovní dobu zaměstnanců z tabulky 'zaměstnanci'.Proveďte následující dotaz:
SELECT emp_name, AVG(working_hours) AS 'Average working hour' FROM employees GROUP BY emp_name;
Výstup: