Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

mySQL Số lượng lớn nhất theo nhóm

Nói chung ORDER BY trong một truy vấn phụ không có ý nghĩa gì. (Nó chỉ hoạt động khi được kết hợp với FETCH FIRST / LIMIT / TOP, v.v.)

Giải pháp là sử dụng truy vấn phụ có tương quan để tìm con cá nặng nhất cho tổ hợp tên người dùng, vị trí, loài hiện tại của hàng "truy vấn chính". Nếu hòa, cả hai hàng sẽ được trả về.

SELECT *
FROM entries e1
WHERE username = :user
  AND CAST(weight AS DECIMAL(9,3)) = (select max(CAST(weight AS DECIMAL(9,3)))
                                      from entries e2
                                      where e1.username = e2.username
                                        and e1.location = e2.location
                                        and e1.species = e2.species)

Lưu ý rằng char cho trọng lượng vẫn là một lựa chọn tồi, vì bạn phải ép cả hai bên khi so sánh các giá trị. Quay lại số thập phân trong bảng của bạn!




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ví dụ về câu lệnh JDBC - Chèn hàng loạt, cập nhật, xóa

  2. Đồng bộ hóa cơ sở dữ liệu Microsoft MySQL cục bộ với cơ sở dữ liệu mysql từ xa được lên lịch hàng ngày

  3. truy vấn nào tốt hơn và hiệu quả - mysql

  4. SQL - Xóa dấu ngoặc đơn khỏi số điện thoại

  5. Lỗi MySQL 1264:giá trị ngoài phạm vi cho cột