sql >> Databasteknik >  >> RDS >> PostgreSQL

VÄLJ fast antal rader genom att jämnt hoppa över rader

Felet i ditt första försök är att du inte kan blanda aggregatfunktionen count(*) med den osammanställda urval av rader. Du kan fixa detta genom att använda count() som fönsteraggregatfunktion istället:

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;

Detaljerad förklaring här:

@Alexander har en fix för ditt senaste försök.



  1. Hur byter man namn på ett kolumnnamn i SQL?

  2. Bygga en mycket tillgänglig databas för Moodle med PostgreSQL

  3. MySQL:Samtidiga uppdateringar (via trådar) på en enkel tabell

  4. query cache fungerar inte