Problem:
Du vill hitta det maximala värdet för en numerisk kolumn.
Exempel:
Vår databas har en tabell som heter product
med data i följande kolumner:id
, name
, year
och items
.
id | namn | år | objekt |
---|---|---|---|
1 | bröd | 2018 | 345 |
2 | choklad | 2017 | 123 |
3 | smör | 2019 | 34 |
4 | bröd | 2019 | 456 |
5 | smör | 2018 | 56 |
6 | smör | 2017 | 78 |
7 | choklad | 2019 | 87 |
8 | choklad | 2018 | 76 |
Låt oss ta reda på det maximala antalet sålda varor under alla år.
Lösning:
SELECT MAX(items) as max_items FROM product;
Här är resultatet:
max_items |
---|
456 |
Diskussion:
För att hitta maxvärdet för en kolumn, använd MAX()
aggregerad funktion; det tar som argument namnet på den kolumn som du vill hitta maxvärdet för. Om du inte har angett några andra kolumner i SELECT
klausul kommer maximivärdet att beräknas för alla poster i tabellen. I vårt exempel returnerar frågan det maximala antalet bland alla objekt.
Naturligtvis, eftersom det är en aggregerad funktion, MAX()
kan även användas med grupper. Om vi till exempel vill se det maximala antalet sålda varor varje år kan vi skriva den här frågan:
SELECT year, MAX(items) AS max_items FROM product GROUP BY year;
Maxbeloppet beräknas för varje grupp:
år | max_artiklar |
---|---|
2018 | 345 |
2017 | 123 |
2019 | 456 |