In einem früheren Artikel habe ich die Verwendung von ZEILEN behandelt, die der over Klausel VORAUSGEHEN und FOLGEN. In diesem Beispiel verwende ich dieselbe Datenbank und dieselben Tabellen, die ich im vorherigen Beispiel erstellt habe, um ZEILEN anzuzeigen, die sowohl VORHER als auch nachher UNBEGRENZT sind.,

Eine der neuen Funktionen, die in TSQL in SQL Server 2012 verfügbar sind, sind die Optionen ROWS UNBOUNDED PRECEDING und ROWS UNBOUNDED FOLLOWING. Die Option UNBEGRENZT ist verfügbar, wenn Sie die VORHERIGEN und die FOLGENDEN Optionen verwenden. So funktionieren sie…

ZEILEN UNBEGRENZT VOR

In diesem Beispiel listet das MinRevenueToDate die niedrigsten Einnahmen für diese Zeile und alle früheren Zeilen nach Datum in der aktuellen Abteilungs-ID auf.

Sie können sehen, dass Zeile 1 das MinRevenueToDate auf 10030 setzt und sich erst in Zeile 7 mit einem niedrigeren Umsatzjahr ändert.,

Dann beginnt Zeile 16 für eine neue Abteilung mit dem bisher niedrigsten laufenden Umsatz. Dann wird Zeile 21 auf eine niedrigere Umsatznummer zurückgesetzt.

ZEILEN UNBEGRENZT FOLGEND

Nun zum Beispiel UNBEGRENZT FOLGEND:

-- ROWS UNBOUNDED FOLLOWINGselect Year, DepartmentID, Revenue, min(Revenue) OVER (PARTITION by DepartmentID ORDER BY ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING) as MinRevenueBeyondfrom REVENUEorder by departmentID, year;

Wo Sie sehen können, dass der min(Umsatz) über alle Zeilen aus der aktuellen Zeile bis zum Ende des Satzes berechnet wird, der von der DepartmentID partitioniert wird.,

Die Option UNBEGRENZT ist sehr nützlich, um eine Berechnung vom Anfang eines Satzes bis zur aktuellen Zeile oder von der aktuellen Zeile bis zum Ende eines Satzes oder einer Gruppe zu bestimmen.

Beachten Sie, dass diese Funktion in SQL Server 2012 eingeführt wurde und in früheren Editionen nicht verfügbar ist.

Weblinks

  • SQL Query Training
  • CTE Daten Paging
  • OVER-Klausel mit ZEILEN und REICHWEITE