Clauza SQL GROUP BY este utilizată pentru a aranja date identice în grupuri bazate pe una sau mai multe coloane. Este folosit în mod obișnuit cu funcții agregate precum COUNT() SUM() AVG() MAX() și MIN() pentru a efectua calcule pe fiecare grup de date.
Exemplu: Mai întâi vom face crea o bază de date demo SQL și un tabel pe care vom folosi comanda GROUP BY.
Interogare:
SELECT Department SUM(Salary) AS TotalSalary FROM Employees GROUP BY Department;Ieșire:
Sintaxă:
SELECT column1 aggregate_function(column2) FROM table_name WHERE condition GROUP BY column1 column2;- funcția_agregată: funcția utilizată pentru agregare de ex. SUM() AVG() COUNT().
- table_name: numele tabelului din care sunt selectate datele.
- stare: Condiție opțională pentru a filtra rândurile înainte de grupare (utilizată cu WHERE).
- coloana1 coloana2: Coloane pe care se aplică gruparea.
Exemple de GROUP BY
Să presupunem că avem un tabel Student. Vom insera câteva date eșantion în acest tabel și apoi vom efectua operațiuni folosind GROUP BY pentru a înțelege cum grupează rândurile pe baza unei coloane și cumulează datele.
Exemplul 1: Grupați după o singură coloană
Când grupăm pe o singură coloană, rândurile cu aceeași valoare din acea coloană sunt combinate. De exemplu, gruparea după materie arată câți studenți sunt înscriși la fiecare materie.
abatere standard numpy
Interogare:
SELECT subject COUNT(*) AS Student_Count FROM Student GROUP BY subject;Ieșire:
Explicaţie: Fiecare subiect apare de două ori în tabel, astfel încât numărul pentru matematică și știință engleză este 2.
Exemplul 2: Grupați după mai multe coloane
Utilizarea GROUP BY cu mai multe coloane grupează rândurile care au aceleași valori în acele coloane. De exemplu, gruparea după materie și an va combina rânduri cu aceeași pereche materie-an și putem număra câți elevi se încadrează în fiecare grupă.
Interogare:
SELECT subject year COUNT(*) FROM Student GROUP BY subject year;Ieșire:
Explicație: Elevii cu aceeași disciplină și an sunt grupați împreună. Deoarece fiecare pereche subiect-an are loc de două ori, numărul este 2 pentru fiecare grup.
HAVING Clauza în GROUP BY Clauza
Clauza HAVING este folosită pentru a filtra rezultatele după grupare, în special atunci când lucrați cu funcții agregate precum SUM() COUNT() sau AVG(). Spre deosebire de WHERE se aplică condiții asupra datelor grupate.
Exemplul 1: Filtrați după salariul total
În această interogare grupăm angajații după nume și îi afișăm numai pe cei al căror salariu total este mai mare de 50000.
SELECT NAME SUM(sal) FROM Emp GROUP BY name HAVING SUM(sal)>50000; Ieșire
Explicaţie : În rezultat apar doar angajații al căror salariu total depășește 50000.
state unite cate orase
Exemplul 2: Filtrați după salariul mediu
În această interogare grupăm angajații după vârstă și afișăm numai acele grupe de vârstă în care salariul mediu este peste 60000.
SELECT age AVG(sal) AS Average_Salary FROM emp GROUP BY age HAVING AVG(sal) > 60000;Ieșire:
Explicaţie: Această interogare grupează angajații după vârstă și calculează salariul mediu pentru fiecare vârstă. Sunt afișate doar acele grupe de vârstă în care salariul mediu este mai mare de 60000.
Creați un test