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

Grup MySQL dari kuartal ke periode

Ini adalah masalah kesenjangan dan pulau. Anda dapat menyelesaikannya dengan fungsi jendela (hanya tersedia di MySQL 8.0):

select 
    person,
    min(act_date) start_date,
    max(act_date) end_date
from (
    select
        t.*,
        sum(act_date <> lag_act_date + interval 15 minute)
            over(partition by person order by act_date) grp
    from (
        select 
            t.*,
            lag(act_date) 
                over(partition by person order by act_date) lag_act_date
        from mytable t
    ) t
) t
group by person, grp
order by min(act_date)

Idenya adalah untuk membangun grup record yang berdekatan menggunakan jumlah kumulatif:setiap kali ada jeda yang tidak lebih dari 15 menit, jumlahnya bertambah.



  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 memilih item jika jumlah lebih dari 3 di Laravel Query

  2. Cara terbaik untuk membaca CSV di Ruby. CSV lebih cepat?

  3. Pembuat kueri tidak memasukkan stempel waktu

  4. Peringatan:mysql_query():argumen yang diberikan bukan sumber MySQL-Link yang valid

  5. Mengapa fungsi 'masukkan' tidak menambahkan baris menggunakan MySQLdb?