Aggregat funktioner
Der er en 5 funktioner, der er interessante i forbindelse med beregning af totaler:
Funktion | Beskrivelse |
SUM() |
Giver summen |
COUNT() |
Tæller antallet af værdier |
MIN() |
Finder den mindste værdi |
MAX() |
Og den største |
AVG() |
Og endelig gennemsnittet (ja, jeg vidste du ventede på den) |
Og lidt eksempler
SELECT SUM(VacationHours) AS FerieTimerIalt
FROM HumanResources.Employee;
Der giver summen af ferietimer.
Og lidt trivielt kan man naturligvis også skrive
SELECT MAX(VacationHours) AS MaksFerieTimer
FROM HumanResources.Employee;
Der det største ferietimetal.
SELECT MIN(VacationHours) AS MinFerieTimer
FROM HumanResources.Employee;
Der giver det mindste ferietimetal.
Funktionerne MAX og MIN kan bruges både på tal, tekster og datoer.
SELECT AVG(VacationHours) AS MiddelFerieTimer
FROM HumanResources.Employee;
Der giver det gennemsnitlige ferietimetal.
Bemærk, at AVG() vil returnere samme datatype som feltet der beregnes på - i ovenstående tilfælde integer - men mange gange er gennemsnittet et kommatal og man ønsker kommatallet ud. Det kan man gøre ved at konvertere feltet til kommatal inden man beregner gennemsnittet:
SELECT AVG(CAST(VacationHours AS Float)) AS MiddelFerieTimer
FROM HumanResources.Employee;
Endelig kan man tælle antallet af poster i tabellen (medarbejdere) med
SELECT COUNT(BusinessEntityID) AS AntalMedarbejdere
FROM HumanResources.Employee;
Man kan også bruge beregninger inde i funktionerne:
SELECT SUM(OrderQty*UnitPrice) AS TotalSalg
FROM Sales.SalesOrderDetail;