sql >> Database teknologi >  >> RDS >> PostgreSQL

PostgreSQL:RÆKKE MELLEM INTERVAL '10 DAGE' OG AKTUELT RÆKKE

Du kan bruge ROW_NUMBER() til at udtrække den seneste post inden for de sidste 10 dage for hvert element:

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

I underforespørgslen udfører WHERE-sætningen filtreringen på datointervallet; ROW_NUMBER() tildeler en rangering til hver post inden for grupper af poster, der har samme item_id, med den seneste post først. Derefter filtrerer den ydre forespørgsel bare i poster med række nummer 1.



  1. Hvordan opretter man permanente filer på Heroku?

  2. Ajax, JQuery html tabel genbestilling

  3. Gemte procedureoutputparametre i SQL Server Profiler

  4. Mysql WHERE-problem med kommasepareret liste