Probeer MAX
. te gebruiken met een 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;
Meer informatie over GROUP BY
De group by-clausule wordt gebruikt om de geselecteerde records in groepen te splitsen op basis van unieke combinaties van de group by-kolommen. Dit stelt ons vervolgens in staat om geaggregeerde functies te gebruiken (bijv. MAX, MIN, SUM, AVG, ...) die beurtelings op elke groep records worden toegepast. De database retourneert een enkel resultaatrecord voor elke groepering.
Als we bijvoorbeeld een reeks records hebben die temperaturen in tijd en locatie weergeven in een tabel als deze:
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
...
Als we vervolgens de maximale temperatuur per locatie willen vinden, moeten we de temperatuurrecords opsplitsen in groepen, waarbij elk record in een bepaalde groep dezelfde locatie heeft. We willen dan de maximale temperatuur van elke groep vinden. De vraag om dit te doen is als volgt:
SELECT Location, MAX(Temperature)
FROM Temperatures
GROUP BY Location;