Gruppering af data
Med GROUP BY kan man gruppere sine data og på den måde tælle, summe eller andet inden for grupper.
Det kan se sådan her ud:
SELECT Color, COUNT(ProductID)
FROM Production.Product
GROUP BY Color;
Der kan fortælle dig, hvor mange produkter, der er af hver farve.
Bemærk
- Felter, der er angivet i feltlisten i starten af forespørgslen SKAL også være i GROUP BY udtrykket.
- Men felter i GROUP BY udtrykket behøver ikke være i feltlisten.
- Felter, der indeholder NULL værdien bliver lagt i samme gruppe.
Gruppering på flere kolonner
Man kan godt gruppere på flere kolonner - f.eks. sådan her:
SELECT COUNT(BusinessEntityID) AS AntalMedarbejdere,
Gender, OrganizationLevel
FROM HumanResources.Employee
GROUP BY Gender, OrganizationLevel;
Der kan fortælle dig, hvor mange der er af hvert køn på hvert organisations niveau.
Sortering
Og ja, man kan naturligvis også sortere sådan en grupperet forespørgsel
SELECT COUNT(BusinessEntityID) AS AntalMedarbejdere,
Gender, OrganizationLevel
FROM HumanResources.Employee
GROUP BY Gender, OrganizationLevel
ORDER BY Gender;
Hvis man skulle finde det interessant.
Filtrering
Og endelig kan man filtere sin forespørgsel. Det kan gøres på to måder
SELECT COUNT(BusinessEntityID) AS AntalMedarbejdere,
Gender, OrganizationLevel
FROM HumanResources.Employee
WHERE OrganizationLevel > 2
GROUP BY Gender, OrganizationLevel;
Der så kun viser informationer om medarbejdere med organisationsniveau over 2.
Vil man til gengæld filtere på antallet af medarbejdere i hver gruppe ser der sådan her ud
SELECT COUNT(BusinessEntityID) AS AntalMedarbejdere,
Gender, OrganizationLevel
FROM HumanResources.Employee
GROUP BY Gender, OrganizationLevel
HAVING COUNT(BusinessEntityID) > 10;
Der så kun vil vise informationer i de tilfælde, at der er flere end 10 medarbejdere i gruppen.