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

Tìm giá trị n cao nhất của mỗi nhóm trong MySQL

Xem câu trả lời khác của tôi cho giải pháp chỉ dành cho MySQL nhưng rất nhanh.

Giải pháp này cho phép bạn chỉ định bất kỳ số lượng hàng trên cùng trên mỗi làn và không sử dụng bất kỳ cú pháp MySQL "funky" nào - nó sẽ chạy trên hầu hết các cơ sở dữ liệu.

select lane, series
from lane_series ls
group by lane, series
having (
    select count(*) 
    from lane_series
    where lane = ls.lane
    and series > ls.series) < 2 -- Here's where you specify the number of top rows
order by lane, series desc;

Đầu ra thử nghiệm:

create table lane_series (lane int, series int);

insert into lane_series values 
(1, 680),
(1, 685),
(1, 688),
(2, 666),
(2, 425),
(2, 775);

select lane, series
from lane_series ls
group by lane, series
having (select count(*) from lane_series where lane = ls.lane and series > ls.series) < 2
order by lane, series desc;

+------+--------+
| lane | series |
+------+--------+
|    1 |    688 |
|    1 |    685 |
|    2 |    775 |
|    2 |    666 |
+------+--------+
4 rows in set (0.00 sec)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Hiển thị máy chủ MySQL thông qua SQL Command

  2. Cách tự động hóa quá trình di chuyển từ MySQL độc lập sang Galera Cluster bằng Ansible

  3. Flutter kết nối với cơ sở dữ liệu trong máy chủ

  4. MySQL ISNULL () Giải thích

  5. Chuyển đổi giản đồ MySQL sang Github Wiki?