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

Bagaimana cara membuat tabel virtual untuk menghasilkan urutan tanggal di PostgreSQL?

Daftar Tanggal

Gunakan fungsi generate_series untuk mendapatkan daftar nomor yang dapat Anda tambahkan ke tanggal untuk mendapatkan daftar tanggal:

SELECT CURRENT_DATE + s.a AS dates 
  FROM generate_series(0,14,7) as s(a);

Hasil:

dates
------------
2004-02-05
2004-02-12
2004-02-19

Memutar

Bagian terakhir dari pertanyaan Anda berkaitan dengan memutar set hasil -- mengonversi data baris menjadi data kolom. PIVOT dan UNPIVOT adalah ANSI, tetapi saya tidak melihatnya sebagai didukung oleh PostgreSQL saat ini . Cara yang paling konsisten didukung untuk memutar kueri adalah dengan menggunakan fungsi agregat:

   SELECT t.account,
          SUM(CASE WHEN t.date = '2010-01-01' THEN t.amount END) AS '2010-01-01',
          SUM(CASE WHEN t.date = '2010-01-02' THEN t.amount END) AS '2010-01-02',
          SUM(CASE WHEN t.date = '2010-01-03' THEN t.amount END) AS '2010-01-03',
          SUM(t.amount) AS Balance
     FROM (SELECT CURRENT_DATE + s.a AS dates 
             FROM generate_series(0,14,7) as s(a)) x
LEFT JOIN TRANSACTIONS y ON y.date = x.date
 GROUP BY t.account

Kolom Dinamis

...berarti SQL dinamis .




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. postgres truncate lambat

  2. Bagaimana cara meneruskan array tipe khusus ke fungsi Postgres

  3. C# dan PostgreSQL

  4. Postgres Tidak ada izin untuk membuat pengguna

  5. Bekerja dengan DataSource, JNDI API di IntelliJ