W Oracle funkcja analityczna odnosi się do funkcji używanych do obliczania zestawu wierszy. Funkcje analityczne są używane głównie do określenia różnych wskaźników, takich jak percentyle, odchylenia standardowe itp.
W tym samouczku dowiemy się, jak korzystać z jednej z funkcji Oracle Lag, aby uzyskać dostęp do wiersza w określonym przesunięciu z bieżącego wiersza.
Funkcja Oracle Lag ()
Funkcja lag () służy do pobierania wartości wiersza w tabeli z bieżącego wiersza. Na przykład możesz go użyć, aby uzyskać wartość z pięciu wierszy z bieżącej pozycji. Możesz go użyć do wykonania obliczeń lub porównań między wartościami w czasie.
Poniżej pokazuje podstawową składnię funkcji:
Lag (expr [, offset] [, domyślnie])Funkcja akceptuje następujące parametry:
Przykład funkcji Oracle Lag ()
Ten przykład pokazuje, jak korzystać z funkcji LAG ().
Wybierz nazwę pierwszej nazwy, pensja, wynagrodzenie, Job_id, opóźnienie (wynagrodzenie) nad (zamówienie według wynagrodzenia ASC)Wynik:
Jak widać, kolumna opóźnienia zawiera pensję za nią. Jeśli nie ma za tym niewiele, taki jak pierwsza kolumna, funkcja zwraca NULL.
Możemy tego uniknąć, ustawiając domyślny parametr.
Wybierz nazwę pierwszej nazwy, nazwa last_name, pensja, opóźnienie (pensja, 1, 0) powyżej (zamówienie według wynagrodzenia ASC) jako prevWyjście:
Możemy również określić wartość przesunięcia, jak pokazano następująco:
Wybierz nazwę pierwszej nazwy, nazwa last_name, pensja, opóźnienie (pensja, 5, 0) powyżej (zamówienie według pensji ASC)W takim przypadku zapytanie powinno pobierać pięć kolumn za nim w następujący sposób:
Aby użyć funkcji opóźnienia z partycją według klauzuli, możemy uruchomić następujące polecenie:
Wybierz nazwę First_name, Last_name, pensja Job_id, opóźnienie (wynagrodzenie, 1, 0) Over (partycja według zamówienia JOB_ID według wynagrodzenia ASC)Wynik:
Wniosek
W tym poście omówiliśmy, jak korzystać z funkcji Oracle Lag () do pobrania poprzednich wierszy z bieżącej pozycji w danym przesunięciu.