Sie können es tun, indem Sie die Tabelle mit sich selbst verbinden (indem Sie einen sogenannten Cartesian oder Cross-Join ausführen). . Siehe das folgende Beispiel.
%Vor%Wenn Sie eine Tabelle mit Ländern und deren BIP pro Kopf angeben, erhalten Sie eine laufende Summe der BIP-Zahlen.
%Vor%Beachten Sie, dass dies eine sehr ressourcenintensive Operation sein kann, da eine Tabelle mit N-Elementen eine temporäre Tabelle mit N * N-Elementen erstellt. Ich würde es nicht auf einem großen Tisch ausführen.
Cross-Join-Lösungen wie Diomidis Spinellis vorgeschlagen haben, nehmen Sie O (N ^ 2) Zeit. Ein rekursiver CTE kann schneller arbeiten, wenn Sie den verschachtelten Code verschlingen können.
Dies erzeugt dieselbe Ausgabe wie seine.
%Vor% Sortierung und Vergleiche sorgen für Duplikate, COALESCE
ignoriert NULL.
Wenn Sie einen guten Index haben, sollte dies O (N log N) sein. Da SQLite keine Cursor unterstützt, existiert wahrscheinlich keine O (N) -Lösung, ohne auf eine externe Anwendung angewiesen zu sein.
Tags und Links sql sqlite aggregate-functions