Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Kelompokkan baris jika memiliki interval waktu yang tumpang tindih

WITH C1 AS (
SELECT *,
  CASE 
WHEN start_time <= MAX(IFnull(end_time,'9999-12-31 00:00:00.000')) OVER(
  partition by id
  ORDER BY start_time 
  ROWS BETWEEN UNBOUNDED PRECEDING AND 1 PRECEDING
  ) 
  THEN 0 
  ELSE 1 
END AS isstart
FROM activity
) 
SELECT ID,start_time,end_time,
   SUM(isstart) OVER(partition by id ORDER BY ID ROWS UNBOUNDED PRECEDING) AS DG 
FROM C1;

Ini akan berhasil untuk Anda



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL secara otomatis menyisipkan baris ke table2 pada sisipan ke table1

  2. Bagaimana cara mengubah susunan database, tabel, kolom?

  3. MySQL:Bandingkan ANTARA waktu

  4. C# Terlalu banyak koneksi di MySQL

  5. Subquery Sederhana dengan OuterRef