MYSQL GROUP BY sąlyga naudojama duomenims iš kelių įrašų rinkti ir rezultatams sugrupuoti pagal vieną ar daugiau stulpelių. Paprastai jis naudojamas SELECT sakinyje.
Taip pat sugrupuotame stulpelyje galite naudoti kai kurias suvestines funkcijas, pvz., COUNT, SUM, MIN, MAX, AVG ir kt.
Sintaksė:
SELECT expression1, expression2, ... expression_n, aggregate_function (expression) FROM tables [WHERE conditions] GROUP BY expression1, expression2, ... expression_n;
Parametrai
išraiška1, išraiška2, ... išraiška_n: Jis nurodo išraiškas, kurios nėra įtrauktos į agregatinę funkciją ir turi būti įtrauktos į GROUP BY sąlygą.
agregate_function: Nurodoma tokia funkcija kaip SUM, COUNT, MIN, MAX arba AVG ir tt lentelės: Nurodo lenteles, iš kurių norite gauti įrašus. Turi būti bent viena lentelė, nurodyta iš FROM.
KUR sąlygos: Tai neprivaloma. Jame nurodomos sąlygos, kurios turi būti įvykdytos, kad įrašai būtų atrinkti.
(i) MySQL GROUP BY sąlyga su funkcija COUNT
Apsvarstykite lentelę, pavadintą „pareigūnų“, kurioje yra šie įrašai.
Dabar suskaičiuokime pasikartojantį miestų skaičių stulpelio adresu.
Vykdykite šią užklausą:
SELECT address, COUNT(*) FROM officers GROUP BY address;
Išvestis:
(ii) MySQL GROUP BY sąlyga su SUM funkcija
Paimkime lentelės „darbuotojų“ lentelę su šiais duomenimis.
Dabar ši užklausa sugrupuos pagal pavyzdį naudojant funkciją SUM ir pateiks emp_name bei bendrą kiekvieno darbuotojo darbo valandų skaičių.
Vykdykite šią užklausą:
SELECT emp_name, SUM(working_hours) AS 'Total working hours' FROM employees GROUP BY emp_name;
Išvestis:
(iii) MySQL GROUP BY sąlyga su MIN funkcija
Toliau pateiktame pavyzdyje nurodytos minimalios darbuotojų darbo valandos iš lentelės „darbuotojai“.
Vykdykite šią užklausą:
SELECT emp_name, MIN(working_hours) AS 'Minimum working hour' FROM employees GROUP BY emp_name;
Išvestis:
(iv) MySQL GROUP BY sąlyga su MAX funkcija
Toliau pateiktame pavyzdyje nurodytos maksimalios darbuotojų darbo valandos iš lentelės „darbuotojai“.
Vykdykite šią užklausą:
SELECT emp_name, MAX (working_hours) AS 'Minimum working hour' FROM employees GROUP BY emp_name;
Išvestis:
(v) MySQL GROUP BY sąlyga su AVG funkcija
Toliau pateiktame pavyzdyje nurodytos vidutinės darbuotojų darbo valandos iš lentelės „darbuotojai“.Vykdykite šią užklausą:
SELECT emp_name, AVG(working_hours) AS 'Average working hour' FROM employees GROUP BY emp_name;
Išvestis:
multipleksavimas