Klavzula MySQL GROUP BY

Klavzula MySQL GROUP BY

Klavzula MYSQL GROUP BY se uporablja za zbiranje podatkov iz več zapisov in združevanje rezultatov po enem ali več stolpcih. Običajno se uporablja v stavku SELECT.

V združenem stolpcu lahko uporabite tudi nekatere agregatne funkcije, kot so COUNT, SUM, MIN, MAX, AVG itd.

Sintaksa:

 SELECT expression1, expression2, ... expression_n, aggregate_function (expression) FROM tables [WHERE conditions] GROUP BY expression1, expression2, ... expression_n;  

Parametri

izraz1, izraz2, ... izraz_n: Podaja izraze, ki niso enkapsulirani v agregatno funkcijo in morajo biti vključeni v klavzulo GROUP BY.

agregatna_funkcija: Določa funkcijo, kot so tabele SUM, COUNT, MIN, MAX ali AVG itd.: Določa tabele, iz katerih želite pridobiti zapise. V členu FROM mora biti navedena vsaj ena tabela.

KJE pogoji: To ni obvezno. Določa pogoje, ki morajo biti izpolnjeni, da so zapisi izbrani.

(i) Klavzula MySQL GROUP BY s funkcijo COUNT

Razmislite o tabeli z imenom 'tabela uradnikov', ki ima naslednje zapise.

MySQL skupina po klavzuli 1

Zdaj pa preštejmo ponavljajoče se število mest v naslovu stolpca.

Izvedite naslednjo poizvedbo:

 SELECT address, COUNT(*) FROM officers GROUP BY address;  

Izhod:

MySQL skupina po klavzuli 2

(ii) Klavzula MySQL GROUP BY s funkcijo SUM

Vzemimo tabelo 'zaposleni', ki ima naslednje podatke.

Skupina MySQL po klavzuli 3

Zdaj bo naslednja poizvedba združila primer z uporabo funkcije SUM in vrnila emp_name in skupne delovne ure vsakega zaposlenega.

Izvedite naslednjo poizvedbo:

 SELECT emp_name, SUM(working_hours) AS 'Total working hours' FROM employees GROUP BY emp_name;  

Izhod:

Skupina MySQL po klavzuli 4

(iii) Klavzula MySQL GROUP BY s funkcijo MIN

Naslednji primer podaja minimalni delovni čas zaposlenih iz tabele 'zaposleni'.

Izvedite naslednjo poizvedbo:

 SELECT emp_name, MIN(working_hours) AS 'Minimum working hour' FROM employees GROUP BY emp_name;  

Izhod:

Skupina MySQL po klavzuli 5

(iv) Klavzula MySQL GROUP BY s funkcijo MAX

Naslednji primer določa najdaljši delovni čas zaposlenih iz tabele 'employees'.

Izvedite naslednjo poizvedbo:

 SELECT emp_name, MAX (working_hours) AS 'Minimum working hour' FROM employees GROUP BY emp_name;  

Izhod:

Skupina MySQL po klavzuli 6

(v) Klavzula MySQL GROUP BY s funkcijo AVG

Naslednji primer podaja povprečne delovne ure zaposlenih iz tabele 'zaposleni'.

Izvedite naslednjo poizvedbo:

 SELECT emp_name, AVG(working_hours) AS 'Average working hour' FROM employees GROUP BY emp_name;  

Izhod:

Skupina MySQL po klavzuli 7