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

MySQL cara mendapatkan jumlah tanggal mulai/akhir dengan kemungkinan tanggal yang tumpang tindih

Gunakan variabel untuk memperbaiki rentang sebelum mengagregasi total

SQL DEMO

SELECT t.`fk_id`,
       @rn := if(@id = `fk_id`, 
                 @rn + 1, 
                 if(@id:=`fk_id`, if(@end:='1900-01-01 00:00:00',1,1), if(@end:='1900-01-01 00:00:00',1,1))   
                ) as rn,
       if(start < @end, 
          @end, 
          if(@end := end, `start`, `start`) 
         ) as `start`, 
       end
FROM Table1 t
CROSS JOIN (SELECT @id := 0, @end := STR_TO_DATE('1900-01-01 00:00:00', '%Y-%m-%d %H:%i:%s') as e, @rn := 0) t
ORDER BY `fk_id`, `start`

KELUARAN




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara Menampilkan Baris Tidak Ada di Tabel Lain di MySQL

  2. Memperbaiki 1064 SQL Error Mengimpor Database ke Wampserver

  3. MySQL wait_timeout tidak dihormati untuk permintaan panjang?

  4. INSERT IGNORE atau INSERT WHERE NOT IN

  5. Masukkan beberapa catatan dari datagridview ke tabel database saya menggunakan VB.NET