PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Wählen Sie maximale und minimale Werte alle x Anzahl von Zeilen aus - postgresql

Sie können eine feste Anzahl von Zeilen mit row_number() aggregieren und Arithmetik:

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);

Dies verwendet "hack", um den open zu erhalten und close -- durch die Verwendung von Arrays.