SQL GROUP BY-sætningen bruges til at arrangere identiske data i grupper baseret på en eller flere kolonner. Det bruges almindeligvis med aggregerede funktioner som COUNT() SUM() AVG() MAX() og MIN() til at udføre beregninger på hver gruppe af data.
Eksempel: Først vil vi skabe en demo SQL-database og -tabel, hvor vi vil bruge GROUP BY-kommandoen.
Forespørgsel:
SELECT Department SUM(Salary) AS TotalSalary FROM Employees GROUP BY Department;Produktion:
java string charat
Syntaks:
SELECT column1 aggregate_function(column2) FROM table_name WHERE condition GROUP BY column1 column2;- aggregeret_funktion: funktion brugt til aggregering f.eks. SUM() AVG() ANTAL().
- tabelnavn: navnet på den tabel, hvorfra data er valgt.
- tilstand: Valgfri betingelse for at filtrere rækker før gruppering (bruges med WHERE).
- kolonne 1 kolonne 2: Kolonner, som grupperingen anvendes på.
Eksempler på GROUP BY
Lad os antage, at vi har et elevbord. Vi vil indsætte nogle eksempeldata i denne tabel og derefter udføre operationer ved hjælp af GROUP BY for at forstå, hvordan den grupperer rækker baseret på en kolonne og aggregerer data.
Eksempel 1: Gruppér efter enkelt kolonne
Når vi grupperer efter en enkelt kolonne, kombineres rækker med samme værdi i den kolonne. For eksempel viser gruppering efter emne, hvor mange elever der er tilmeldt hvert fag.
Forespørgsel:
hashset java
SELECT subject COUNT(*) AS Student_Count FROM Student GROUP BY subject;Produktion:
Forklaring: Hvert emne optræder to gange i tabellen, så tallet for engelsk matematik og naturvidenskab er 2.
Eksempel 2: Gruppér efter flere kolonner
Brug af GROUP BY med flere kolonner grupperer rækker, der deler de samme værdier i disse kolonner. For eksempel vil gruppering efter fag og år kombinere rækker med det samme fag-år-par, og vi kan tælle, hvor mange elever der falder ind i hver gruppe.
Forespørgsel:
SELECT subject year COUNT(*) FROM Student GROUP BY subject year;Produktion:
Forklaring: Elever med samme fag og årgang er grupperet sammen. Da hvert fag-år-par forekommer to gange, er tælleren 2 for hver gruppe.
HAVE Klausul i GROUP BY Klausul
HAVING-sætning bruges til at filtrere resultater efter gruppering, især når der arbejdes med aggregerede funktioner som SUM() COUNT() eller AVG(). I modsætning til WHERE gælder det betingelser for grupperede data.
Eksempel 1: Filtrer efter samlet løn
I denne forespørgsel grupperer vi medarbejdere efter navn og viser kun dem, hvis samlede løn er større end 50.000.
SELECT NAME SUM(sal) FROM Emp GROUP BY name HAVING SUM(sal)>50000; Produktion
hvordan man bestemmer skærmstørrelsen
Forklaring : Kun medarbejdere, hvis samlede løn overstiger 50.000, fremgår af resultatet.
Eksempel 2: Filtrer efter gennemsnitsløn
I denne forespørgsel grupperer vi medarbejdere efter alder og viser kun de aldersgrupper, hvor gennemsnitslønnen er over 60.000.
SELECT age AVG(sal) AS Average_Salary FROM emp GROUP BY age HAVING AVG(sal) > 60000;Produktion:
Forklaring: Denne forespørgsel grupperer medarbejdere efter alder og beregner gennemsnitslønnen for hver alder. Kun de aldersgrupper, hvor gennemsnitslønnen er større end 60.000, vises.
Opret quiz