Prøv at bruge MAX
med en GROUP BY
.
SELECT u.userName, MAX(c.carPrice)
FROM users u
LEFT JOIN cars c ON u.id = c.belongsToUser
WHERE u.id = 4;
GROUP BY u.userName;
Yderligere information om GROUP BY
Group by-udtrykket bruges til at opdele de valgte poster i grupper baseret på unikke kombinationer af gruppen efter kolonner. Dette giver os så mulighed for at bruge aggregerede funktioner (f.eks. MAX, MIN, SUM, AVG, ...), som vil blive anvendt på hver gruppe af poster efter tur. Databasen returnerer en enkelt resultatpost for hver gruppering.
For eksempel, hvis vi har et sæt poster, der repræsenterer temperaturer over tid og placering i en tabel som denne:
Location Time Temperature
-------- ---- -----------
London 12:00 10.0
Bristol 12:00 12.0
Glasgow 12:00 5.0
London 13:00 14.0
Bristol 13:00 13.0
Glasgow 13:00 7.0
...
Så hvis vi vil finde den maksimale temperatur efter sted, så skal vi opdele temperaturposterne i grupperinger, hvor hver post i en bestemt gruppe har den samme placering. Vi vil så finde den maksimale temperatur for hver gruppe. Forespørgslen for at gøre dette ville være som følger:
SELECT Location, MAX(Temperature)
FROM Temperatures
GROUP BY Location;