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

SELECT / GROUP BY - chuỗi giá trị

Một phiên bản hơi phức tạp do thiếu các chức năng phân tích trong MySQL; Tôi giả sử đó là SUM của val1 bạn cần;

SELECT SUM(val1) val1, MAX(val2) val2
FROM (
  SELECT s1.val1, COUNT(s3.val1) grouping, s1.val2 val2
  FROM sequence s1
  LEFT JOIN sequence s2 ON s1.val1 >= s2.val1
  LEFT JOIN sequence s3 ON s3.val1 = s2.val1 - 1 AND s2.val2 <> s3.val2
  GROUP BY s1.val1
) a
GROUP BY grouping
ORDER BY grouping

Một SQLfiddle để kiểm tra .

Nếu bạn thêm grouping vào danh sách lựa chọn để làm cho thứ tự rõ ràng, bạn sẽ nhận được

val1    val2    grouping
15      1       0
40      2       1
65      1       2


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. NodeJS không thể kết nối với MYSQL phiên bản mới nhất bên trong Docker Container

  2. MySQL Workbench có được quyền truy cập để quản trị?

  3. Có thể xóa mọi thứ sau 'khoảng trắng' trong trường MySQL không?

  4. Thực thi các tập lệnh SQL trên bộ chứa docker

  5. Cách sử dụng kết nối liên tục mysqli trên các trang khác nhau