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.
Zdaj pa preštejmo ponavljajoče se število mest v naslovu stolpca.
Izvedite naslednjo poizvedbo:
SELECT address, COUNT(*) FROM officers GROUP BY address;
Izhod:
c program za primerjavo nizov
(ii) Klavzula MySQL GROUP BY s funkcijo SUM
Vzemimo tabelo 'zaposleni', ki ima naslednje podatke.
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:
(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:
(iv) Klavzula MySQL GROUP BY s funkcijo MAX
Naslednji primer določa najdaljši delovni čas zaposlenih iz tabele 'employees'.
Izvedite naslednjo poizvedbo:
algoritem za binarno iskanje
SELECT emp_name, MAX (working_hours) AS 'Minimum working hour' FROM employees GROUP BY emp_name;
Izhod:
(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: