sql >> Databasteknik >  >> RDS >> PostgreSQL

välj max- och minvärden varje x antal rader-postgresql

Du kan aggregera fasta antal rader med row_number() och aritmetik:

select min(date),
       (array_agg(bid order by seqnum asc))[1] as open,
       (array_agg(bid order by seqnum desc))[1] as close,
       min(bid) as min_bid, max(bid) as max_bid
from (select t.*, row_number() over (order by date) as seqnum
      from ticks t
     ) t
group by floor((seqnum - 1) / 500);

Detta använder "hack" för att få open och close -- genom att använda arrayer.




  1. MYSQL sökfältsmetod

  2. Del 2 – Hur man organiserar ett stort databasdiagram

  3. Hur undkommer man strängar i PDO?

  4. User agent header - förkortning för mysql-lagring