Thử sử dụng MAX
với 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;
Thông tin thêm về GROUP BY
Mệnh đề group by được sử dụng để chia các bản ghi đã chọn thành các nhóm dựa trên các kết hợp duy nhất của nhóm theo cột. Sau đó, điều này cho phép chúng ta sử dụng các hàm tổng hợp (ví dụ:MAX, MIN, SUM, AVG, ...) sẽ lần lượt được áp dụng cho từng nhóm bản ghi. Cơ sở dữ liệu sẽ trả về một bản ghi kết quả duy nhất cho mỗi nhóm.
Ví dụ:nếu chúng ta có một tập hợp các bản ghi biểu thị nhiệt độ theo thời gian và vị trí trong một bảng như sau:
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
...
Sau đó, nếu chúng ta muốn tìm nhiệt độ tối đa theo vị trí, thì chúng ta cần chia các bản ghi nhiệt độ thành các nhóm, trong đó mỗi bản ghi trong một nhóm cụ thể có cùng một vị trí. Sau đó, chúng tôi muốn tìm nhiệt độ tối đa của mỗi nhóm. Truy vấn để thực hiện việc này sẽ như sau:
SELECT Location, MAX(Temperature)
FROM Temperatures
GROUP BY Location;