PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Pilih hanya baris yang kolomnya diubah dari baris sebelumnya, diberi ID unik

Ini adalah masalah kesenjangan dan pulau. Anda ingin awal setiap pulau, yang dapat Anda identifikasi dengan membandingkan status pada baris saat ini dengan status pada catatan "sebelumnya".

Fungsi jendela berguna untuk ini:

select t.*
from (
    select t.*, lag(status) over(partition by personID order by unixtime) lag_status
    from mytable t
) t
where lag_status is null or status <> lag_status



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Django-DB-Migrations:tidak dapat MENGUBAH TABLE karena memiliki peristiwa pemicu yang tertunda

  2. mendapatkan baris pertama dalam kueri postgres

  3. Go sql - cakupan pernyataan yang disiapkan

  4. Postgresql:Ekspresi reguler tidak valid:nomor referensi balik tidak valid

  5. Lewati array tag ke fungsi plpgsql dan gunakan dalam kondisi WHERE