Xin chào, tôi gặp sự cố với Truy vấn SQL. Cho phép lấy một ví dụ dữ liệu nàySQL: Sử dụng GROUP BY và MAX trên nhiều cột
itemID catID attrib1 attrib2
1 1 10 5
2 1 10 7
3 1 5 10
4 2 18 15
Tôi muốn quay trở lại mục tốt nhất cho mỗi thể loại (với attrib1 có ưu tiên hơn attrib2)
Rõ ràng, "SELECT CatID, MAX (attrib1), MAX (attrib2) TỪ test_table GROUP BY catID "không hoạt động vì nó sẽ trả lại 10 & 10 cho con mèo thứ nhất.
Vì vậy, có anyway để nói cho MySQL để chọn giá trị tối đa từ attrib2 hàng nhưng chỉ xem xét những người mà attrib1 cũng là giá trị tối đa? tức là trả lại dữ liệu sau
catID attrib1 attrib2
1 10 7
2 18 15
Cảm ơn tất cả những người trả lời nhanh. Thật tuyệt khi thấy nhiều cách khác nhau để thực hiện nó. – Charles
Tính năng này có hoạt động không? 3 giá trị trả về phải là giá trị của các hàng khác nhau. – Ryo