logo

Klauzule MySQL GROUP BY

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.

Seskupit MySQL podle klauzule 1

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:

Seskupit MySQL podle odstavce 2

(ii) Klauzule MySQL GROUP BY s funkcí SUM

Vezměme si tabulku „zaměstnanců“ s následujícími údaji.

Seskupit MySQL podle odstavce 3

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:

Seskupit MySQL podle odstavce 4

(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:

Seskupit MySQL podle odstavce 5

(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:

Seskupit MySQL podle odstavce 6

(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:

Seskupit MySQL podle odstavce 7