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

Gabungkan hasil tabel menjadi kolom (pivot/crosstab?)

Untuk menemukan stempel waktu terbaru, pertama-tama gunakan operator perbandingan untuk mengesampingkan stempel waktu mendatang. Selanjutnya, urutkan berdasarkan interval terkecil dengan mengurangkan kandidat stempel waktu yang mungkin dari stempel waktu yang Anda inginkan. Untuk mendapatkan hasil terbaru, batasi 1.

Untuk mendapatkan tabel2 val kolom untuk ditampilkan dengan kolom table1, Anda hanya perlu menjalankan kode yang sama untuk table2 dalam subquery.

SELECT update_time AS time, id1, id2, val, (
  SELECT val from table2 
  WHERE '2004-10-19 10:04:00' >= update_time
  ORDER BY '2004-10-19 10:04:00' - update_time
  LIMIT 1
)
FROM table1 WHERE '2004-10-19 10:04:00' >= update_time
ORDER BY '2004-10-19 10:04:00' - update_time
LIMIT 1;



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

  2. Periksa apakah tipe yang ditentukan pengguna sudah ada di PostgreSQL

  3. Warisan PostgreSQL dengan JPA, Hibernate

  4. OPENXML di Postgres

  5. Praktik terbaik menangani hubungan antar tabel di Spring Data R2dbc