Überspringen Sie jedes N-te Ergebniszeile in PostgreSQL

Ich bin auf der Suche nach einer Möglichkeit zum überspringen von Zeilen in PostgreSQL.

Zwei Möglichkeiten, wie ich könnte dies tun, werden Verwendung:

SELECT * FROM table WHERE id % 5 = 0

Aber ich würde Holen müssen sequentiell Zeilen richtig überspringen. Zum Beispiel, wenn ich fetch row (mit ids) 0,3,5,
es würde nicht überspringen 4 out of 5 Zeilen, sondern führen (ids) 0 und 5.

Oder überspringen Sie außerhalb von SQL:

$count = 0;
while($row = progres_fetch_row($result))
  if ($count++ % 5 == 0)
     // do something 

Was ist der Schnellste Weg, um jede N-te Zeile aus einer SQL-Datenbank?

  • ProgreSQL, wie im ersten Satz, aber ich bin auch neugierig, für MySQL.
  • Du meinst, PostgreSQL, oder wird es einen separaten RDBMS-ich bin mir nicht bewusst?
  • es scheint, die Tippfehler in den Kommentaren aber sehr erste Zeile in der OP sagt "ich bin auf der Suche nach einem Weg, überspringen Sie die Zeilen in (Prostgre)von SQL" so ist es PostgreSQL. aber er ist auch daran interessiert, MySQL-Lösung.
  • Ja, sorry, my bad. Ich kann nicht ändern, den Kommentar, mehr obwohl. Es ist PostgreSQL, die mich am meisten interessiert.
  • What is the fastest way to get every nth row from a SQL database? Wahrscheinlich mit Fenster-Funktionen, aber die meisten effiziente Umsetzung wird natürlich stark davon abhängen, die genaue Struktur der Tabelle(N) in Frage.
  • "Aber ich würde Holen müssen sequentiell Zeilen richtig überspringen. Zum Beispiel, wenn ich fetch row (mit ids) 0,3,5, würde es nicht überspringen 4 out of 5 Zeilen, sondern führen (ids) 0 und 5." ich hatte nicht diese. können Sie näher erläutern, was sind die Basis-Zeilen, was Sie abrufen und wie funktioniert % - operator nicht in Ihrem Fall.

InformationsquelleAutor RobotRock | 2013-10-25
Schreibe einen Kommentar