Problem:
Du vil gerne finde den maksimale værdi af en numerisk kolonne.
Eksempel:
Vores database har en tabel med navnet product
med data i følgende kolonner:id
, name
, year
, og items
.
id | navn | år | varer |
---|---|---|---|
1 | rundstykke | 2018 | 345 |
2 | chokolade | 2017 | 123 |
3 | smør | 2019 | 34 |
4 | rundstykke | 2019 | 456 |
5 | smør | 2018 | 56 |
6 | smør | 2017 | 78 |
7 | chokolade | 2019 | 87 |
8 | chokolade | 2018 | 76 |
Lad os finde det maksimale antal solgte varer gennem alle årene.
Løsning:
SELECT MAX(items) as max_items FROM product;
Her er resultatet:
max_items |
---|
456 |
Diskussion:
For at finde den maksimale værdi af en kolonne, brug MAX()
aggregeret funktion; det tager som argument navnet på den kolonne, som du vil finde den maksimale værdi for. Hvis du ikke har angivet andre kolonner i SELECT
klausul, vil maksimum blive beregnet for alle poster i tabellen. I vores eksempel returnerer forespørgslen det maksimale antal blandt alle varer.
Selvfølgelig, da det er en aggregeret funktion, MAX()
kan også bruges med grupper. For eksempel, hvis vi gerne vil se det maksimale antal solgte varer hvert år, kan vi skrive denne forespørgsel:
SELECT year, MAX(items) AS max_items FROM product GROUP BY year;
Maksimum beregnes for hver gruppe:
år | max_items |
---|---|
2018 | 345 |
2017 | 123 |
2019 | 456 |