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

Nhận n bản ghi đầu tiên / cuối cùng cho mỗi nhóm bằng

Giải pháp Carlos đã được đơn giản hóa và sửa chữa nhiều (giải pháp của anh ấy sẽ trả về 5 hàng đầu tiên, không phải hàng cuối cùng ...):

SELECT tB1.idA, tB1.idB, tB1.textB
FROM tableB as tB1
    JOIN tableB as tB2
        ON tB1.idA = tB2.idA AND tB1.idB <= tB2.idB
GROUP BY tB1.idA, tB1.idB
HAVING COUNT(*) <= 5

Trong MySQL, bạn có thể sử dụng tB1.textB ngay cả khi nó được nhóm theo truy vấn, vì bạn đang nhóm theo idB trong bảng đầu tiên, vì vậy chỉ có một giá trị duy nhất của tB1.textB cho mỗi nhóm ...



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Có cách nào để hiển thị mệnh đề WHERE chỉ cho một trường trong MySQL không?

  2. Các lệnh sao lưu và khôi phục MySQL để quản trị cơ sở dữ liệu

  3. Hiển thị máy chủ MySQL thông qua SQL Command

  4. Lỗi Django MySQL khi tạo bảng

  5. MySQL CHECK ràng buộc thay thế