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

VÆLG fast antal rækker ved jævnt at springe rækker over

Fejlen i dit første forsøg er, at du ikke kan blande den samlede funktion count(*) med den ikke-aggregerede udvalg af rækker. Du kan rette dette ved at bruge count() som vinduesaggregatfunktion i stedet:

SELECT * FROM (
   SELECT *, ((row_number() OVER (ORDER BY "time"))
               % ceil(count(*) OVER () / 500.0)::int) AS rn
   FROM   data_raw
   ) sub
WHERE sub.rn = 0;

Detaljeret forklaring her:

@Alexander har en rettelse til dit sidste forsøg.



  1. Udtræk tegn til højre for en afgrænset værdi i en SELECT-sætning

  2. Lagring af stor JSON - binær eller tekst

  3. EEE MMM dd TT:mm:ss ZZZ åååå datoformat til java.sql.Date

  4. slet alle poster fra tabellen i mysql