Probleem:
U wilt de maximale waarde van een numerieke kolom vinden.
Voorbeeld:
Onze database heeft een tabel met de naam product
met gegevens in de volgende kolommen:id
, name
, year
, en items
.
id | naam | jaar | items |
---|---|---|---|
1 | broodje | 2018 | 345 |
2 | chocolade | 2017 | 123 |
3 | boter | 2019 | 34 |
4 | broodje | 2019 | 456 |
5 | boter | 2018 | 56 |
6 | boter | 2017 | 78 |
7 | chocolade | 2019 | 87 |
8 | chocolade | 2018 | 76 |
Laten we eens kijken naar het maximale aantal verkochte artikelen over alle jaren.
Oplossing:
SELECT MAX(items) as max_items FROM product;
Dit is het resultaat:
max_items |
---|
456 |
Discussie:
Gebruik de MAX()
. om de maximale waarde van een kolom te vinden geaggregeerde functie; het neemt als argument de naam van de kolom waarvoor u de maximale waarde wilt vinden. Als u geen andere kolommen heeft opgegeven in de SELECT
clausule, wordt het maximum berekend voor alle records in de tabel. In ons voorbeeld retourneert de query het maximale aantal van alle items.
Omdat het natuurlijk een aggregatiefunctie is, MAX()
kan ook met groepen worden gebruikt. Als we bijvoorbeeld het maximale aantal verkochte artikelen per jaar willen zien, kunnen we deze vraag schrijven:
SELECT year, MAX(items) AS max_items FROM product GROUP BY year;
Het maximum wordt berekend voor elke groep:
jaar | max_items |
---|---|
2018 | 345 |
2017 | 123 |
2019 | 456 |