Coba gunakan MAX
dengan 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;
Informasi lebih lanjut tentang GROUP BY
Klausa grup menurut digunakan untuk membagi rekaman yang dipilih menjadi grup berdasarkan kombinasi unik grup menurut kolom. Ini kemudian memungkinkan kita untuk menggunakan fungsi agregat (mis. MAX, MIN, SUM, AVG, ...) yang akan diterapkan ke setiap grup record secara bergantian. Basis data akan mengembalikan catatan hasil tunggal untuk setiap pengelompokan.
Misalnya, jika kita memiliki satu set catatan yang mewakili suhu dari waktu ke waktu dan lokasi dalam tabel seperti ini:
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
...
Kemudian jika kita ingin mencari suhu maksimum berdasarkan lokasi, maka kita perlu membagi catatan suhu ke dalam pengelompokan, di mana setiap catatan dalam kelompok tertentu memiliki lokasi yang sama. Kami kemudian ingin mencari suhu maksimum masing-masing kelompok. Permintaan untuk melakukan ini adalah sebagai berikut:
SELECT Location, MAX(Temperature)
FROM Temperatures
GROUP BY Location;