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

Cara mengisi baris berdasarkan data jenis acara

Dengan asumsi bahwa:

  • Anda menjalankan Postgres

  • pelanggan tertentu selalu memiliki tepat dua baris dalam tabel

  • hour adalah tipe data seperti tanggal

Maka salah satu opsi adalah menggunakan generate_series() dengan gabungan lateral, seperti:

select t.customer_id, x.hour
from (
    select customer_id, min(hour) min_hour, max(hour) max_hour 
    from mytable 
    group by customer_id
) t
cross join lateral generate_series(min_hour, max_hour, '1 hour') x(hour)
order by t.customer_id, x.hour

Demo di DB Fiddlde :

customer_id | hour               
:---------- | :------------------
X           | 2019-04-01 13:00:00
X           | 2019-04-01 14:00:00
X           | 2019-04-01 15:00:00
X           | 2019-04-01 16:00:00
X           | 2019-04-01 17:00:00
Y           | 2019-04-01 17:00:00
Y           | 2019-04-01 18:00:00
Y           | 2019-04-01 19:00:00



  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 cache.set() menyebabkan kesalahan kunci duplikat

  2. Cara mencadangkan dan memulihkan database PostgreSQL melalui DBeaver

  3. Membuat Prosedur Tersimpan dengan SQLAlchemy

  4. Cara menghapus parameter konfigurasi

  5. Indeks unik PostgreSQL dan kasus string