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

PostgreSQL:RANGE ANTARA INTERVAL '10 HARI' DAN BARIS LANCAR

Anda dapat menggunakan ROW_NUMBER() untuk mengeluarkan catatan terbaru dalam 10 hari terakhir untuk setiap item:

SELECT * 
FROM (
    SELECT
        DATE(datetime),
        item_id,
        price AS most_recent_price_within_last_10days,
        ROW_NUMBER() OVER(PARTITION BY item_id ORDER BY datetime DESC) rn
    FROM ...
    WHERE datetime > NOW() - INTERVAL '10 DAY'
) x WHERE rn = 1

Dalam subkueri, klausa WHERE melakukan pemfilteran pada rentang tanggal; ROW_NUMBER() memberikan peringkat untuk setiap record dalam grup record yang memiliki item_id yang sama, dengan record terbaru terlebih dahulu. Kemudian, kueri luar hanya memfilter dalam catatan yang memiliki nomor baris 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. C#, Entity Framework Core &PostgreSql :memasukkan satu baris membutuhkan waktu 20+ detik

  2. Cara menggunakan klausa apa saja Postgres dengan kueri asli JPA/Hibernate (parameter array)

  3. Tes Go Paralel dijalankan terhadap database PostgreSQL yang berjalan di Docker

  4. PostgreSQL - ambil baris yang memiliki nilai Max untuk sebuah kolom

  5. mengapa menulis dalam tabel mencegah vacuums di lain?