Hier ist mein Problem ..
%Vor%Ich möchte das Ergebnis wie unten angegeben
%Vor% Hier ist Remaining
(sum(auction)-actual)
.
Ich benutze PostgreSQL. Aber wenn jemand Lösung in SQL Server kennt, ist es OK.
Idan ist 100% korrekt. Ich möchte eine Erklärung dafür geben:
%Vor%OVER ()
erstellt ein Fenster einschließlich aller Zeilen aus der ursprünglichen Abfrage. SUM (Auction)
ist eine Fensterfunktion , die die Summe von Auction
berechnet. Hier ist eine weitere Erklärung:
Fenster ist eine benutzerdefinierte Gruppe von Zeilen innerhalb eines Abfrageergebnissatzes.
Fensterfunktion berechnet einen Wert (z. B. SUM
) für alle Zeilen im Fenster.
Alle Zeilen sind im Fenster, weil OVER()
PARTITION BY
nicht enthält. Mit PARTITION BY
würde das Fenster eine Teilmenge von Zeilen enthalten.
Von MSDN :
... Die OVER-Klausel definiert ein Fenster oder eine benutzerdefinierte Gruppe von Zeilen innerhalb eines Abfrageergebnissatzes. Eine Fensterfunktion berechnet dann einen Wert für jede Zeile im Fenster. Sie können die OVER-Klausel mit Funktionen zur Berechnung aggregierter Werte verwenden, wenn die OVER-Klausel PARTITION BY nicht enthält. Dies bedeutet, dass die Funktion auf alle von der Abfrage zurückgegebenen Zeilen angewendet wird.
Tags und Links sql sql-server postgresql window-functions