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

MySQL chọn bản ghi tối đa trong nhóm theo

Nhiều thông tin tại http://www.xaprb.com/blog/2006/12/07/how-to-select-the-firstleastmax-row-per-group-in-sql/

Đây luôn là một vấn đề khó chịu trong MySQL. Đã có nhiều cách giải quyết vấn đề này, chẳng hạn như nối nhiều trường với nhau (bắt đầu bằng external_id), rồi chọn MAX () của trường đó, rồi chia nhỏ lại.

Tôi đề nghị bạn sử dụng một bảng dẫn xuất. Bảng đầu tiên (t1) bắt nguồn từ một truy vấn đơn giản trong đó bạn xác định MAX(external_id) , sau đó bạn tham gia từ đó để lấy phần còn lại của dữ liệu.

CHỈ LÀ NẾU external_id LÀ DUY NHẤT

SELECT 
   t1.group_id, some_table.id, some_table.mypath
FROM 
   (
      SELECT group_id, MAX(external_id) AS external_id
      FROM some_table
      GROUP BY group_id
   ) as t1
INNER JOIN 
   sometable ON t1.external_id = sometable.external_id
WHERE ...



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL_NO_CACHE không hoạt động

  2. Cách làm cho mysql chấp nhận các kết nối bên ngoài

  3. Tại sao MySQL định dạng lại hoàn toàn văn bản truy vấn XEM?

  4. Hibernate hbm2ddl.auto giá trị mặc định

  5. MySQL:trả về các hàng đã cập nhật