Ich habe die folgenden Tabellenstrukturen in einer Postgres 9.1-Datenbank, aber die ideale Lösung sollte, wenn möglich, DB-agnostisch sein:
%Vor%Ich habe eine Abfrage (für eine Ansicht), die die nächste und vorherige item.id bereitstellt.
z.B.
%Vor%Ich kann dies mit der folgenden Abfrage tun:
%Vor%Können Sie helfen, die folgenden Probleme zu lösen:
1) Gibt es eine Möglichkeit, die IDs wrap, d. h.
2) gibt es eine performante Möglichkeit, die nächsten und vorherigen itemids nach Benutzer-ID zu gruppieren, z. B.
NB: In diesem Beispiel sind die itemids für einen Benutzer sequenziell, dies ist bei realen Daten nicht der Fall, die itemids für jeden Benutzer sind verschachtelt.
%Vor% update Ich habe die Funktionen first_value und last_value in PostgreSQL, dank dnoeth erinnerte er mich daran. Seine Abfrage funktioniert jedoch nicht, da last_value
mit dem Standardfenster arbeitet RANGE ZWISCHEN UNBOUNDED PRECEDING UND CURRENT ROW und gibt keine korrekten Ergebnisse zurück. Sie müssen entweder den Bereich innerhalb der over-Klausel ändern oder first_value
mit order by asc
:
vorherige Version
Ich denke, du könntest das tun:
Tags und Links sql postgresql ansi-sql