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

Làm cách nào để CHỌN các hàng có MAX (Giá trị cột), DISTINCT theo MULTIPLE cột trong SQL

Một phương pháp điển hình sử dụng một truy vấn con có tương quan:

select t.*
from t
where t.date = (select max(t2.date) from t t2 where t2.env = t.env);

Có lẽ một phương pháp tốt hơn một chút là:

select t.*
from t
where t.id = (select t2.id
              from t t2 
              where t2.env = t.env
              order by t2.date desc, t2.id desc
              limit 1
             );

Điều này tốt hơn một chút vì (1) id có lẽ là một khóa chính, vì vậy kết quả khớp nhanh hơn; và (2) nếu có nhiều hàng trong cùng một ngày, thì chỉ một hàng được trả về.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Sự cố UTF-8 với các ký tự từ cơ sở dữ liệu MySQL (ví dụ:é as à ©)

  2. Chèn MySQL chậm

  3. JDBC trả về MySQLSyntaxError Exception với câu lệnh đúng

  4. Sử dụng wp_query sau khi thay đổi cơ sở dữ liệu qua wpdb mới

  5. Làm cách nào để chỉ chọn dữ liệu số từ mysql?