sql >> Databáze >  >> RDS >> PostgreSQL

SELECT pevný počet řádků rovnoměrným přeskakováním řádků

Chybou při prvním pokusu je, že nemůžete kombinovat agregační funkci count(*) s un-agregated výběr řádků. Můžete to opravit pomocí count() jako window-aggregate function místo toho:

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;

Podrobné vysvětlení zde:

@Alexander má opravu pro váš poslední pokus.



  1. PHP:Jaký je nejrychlejší způsob dotazování MySQL? Protože PDO je bolestně pomalé

  2. Automaticky zvýšit varchar v dotazu SQL

  3. PostgreSQL pro iteraci řádků a nalezení nejbližší shody pomocí vlastní funkce vzdálenosti

  4. Seřadit podle aliasu v mysql obsaženém v případě dotazu