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

vælg max- og min-værdier for hver x-mængde af rows-postgresql

Du kan aggregere faste antal rækker ved hjælp af row_number() og 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);

Dette bruger "hack" til at få open og close -- ved at bruge arrays.




  1. Omdøbning af kolonnerne i en tabelkolonner i henhold til en mapping defineret i en anden tabel - med MYSQL

  2. Kolonnenavn og/eller tabelnavn som parametre

  3. Django Admin-søgeforespørgsel rammer ikke Postgres-indekset

  4. Sådan kortslutter du SQL Where-klausul