Zkuste použít MAX
s 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;
Další informace o GROUP BY
Skupina podle klauzule se používá k rozdělení vybraných záznamů do skupin na základě jedinečných kombinací skupiny podle sloupců. To nám pak umožňuje používat agregační funkce (např. MAX, MIN, SUM, AVG, ...), které budou postupně aplikovány na každou skupinu záznamů. Databáze vrátí jeden záznam výsledku pro každé seskupení.
Pokud například máme sadu záznamů představujících teploty v čase a umístění v tabulce, jako je tato:
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
...
Pokud pak chceme najít maximální teplotu podle umístění, pak musíme teplotní záznamy rozdělit do seskupení, kde každý záznam v určité skupině má stejné umístění. Potom chceme najít maximální teplotu každé skupiny. Dotaz k tomu by byl následující:
SELECT Location, MAX(Temperature)
FROM Temperatures
GROUP BY Location;