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

Cách nhóm các phạm vi liên tục bằng MySQL

MySQL không hỗ trợ các hàm phân tích, nhưng bạn có thể mô phỏng hành vi như vậy với user- các biến được xác định :

SELECT   CatID, Begin, MAX(Date) AS End, Rate
FROM (
  SELECT   my_table.*,
           @f:=CONVERT(
             IF(@c<=>CatId AND @r<=>Rate AND DATEDIFF(Date, @d)=1, @f, Date), DATE
           ) AS Begin,
           @c:=CatId, @d:=Date, @r:=Rate
  FROM     my_table JOIN (SELECT @c:=NULL) AS init
  ORDER BY CatId, Rate, Date
) AS t
GROUP BY CatID, Begin, Rate

Xem nó trên sqlfiddle .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Phương thức không đồng bộ MySQL C # không hoạt động?

  2. Làm thế nào để phân trang với mybatis?

  3. Cách tốt nhất để lưu trữ mối quan hệ nhiều-nhiều trong MySQL?

  4. Ví dụ về LOCALTIMESTAMP - MySQL

  5. Truy vấn SQL để đếm theo nhóm với điều kiện cụ thể