w poprzednim artykule omówiłem użycie wierszy poprzedzających i Następujących w klauzuli over. W tym przykładzie użyję tej samej bazy danych i tabel, które utworzyłem w poprzednim przykładzie, aby pokazać wiersze niepohamowane zarówno przed, jak i po.,
jedną z nowych funkcji dostępnych w TSQL w SQL Server 2012 są wiersze UNBOUNDED poprzedzające i wiersze UNBOUNDED następujące opcje. Opcja nieograniczona dostępna w przypadku korzystania z opcji poprzedzających i następujących. Oto jak one działają…
wiersze niepohamowane poprzedzające
-- ROWS UNBOUNDED PRECEDINGselect Year, DepartmentID, Revenue, min(Revenue) OVER (PARTITION by DepartmentID ORDER BY ROWS UNBOUNDED PRECEDING) as MinRevenueToDatefrom REVENUEorder by departmentID, year;
w tym przykładzie MinRevenueToDate wyświetla najniższy dochód dla tego wiersza i wszystkich wcześniejszych wierszy uporządkowanych według daty w bieżącym id działu.
widać, że wiersz 1 ustawia minrevenuetodate na 10030 i nie zmienia się do wiersza 7 z niższym rokiem przychodów.,
Następnie wiersz 21 resetuje się do niższej liczby przychodów.
wiersze niepohamowane następujące
teraz dla przykładu niepohamowane następujące:
-- 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;
gdzie można zobaczyć, że min(dochód) jest obliczany dla wszystkich wierszy od bieżącego wiersza do końca zestawu podzielonego przez departmentID.,
opcja nieograniczona jest bardzo przydatna do obliczenia od początku zestawu do bieżącego wiersza lub od bieżącego wiersza do końca zestawu lub grupy.
należy pamiętać, że ta funkcja została wprowadzona w SQL Server 2012 i nie jest dostępna we wcześniejszych edycjach.
linki pokrewne
- Szkolenie zapytań SQL
- stronicowanie danych CTE
- nad klauzulą z wierszami i zakresem
Dodaj komentarz