Funkcja opóźnienia Oracle

Funkcja opóźnienia Oracle

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])
NAD (
[query_partition_clause]
order_by_clause
)

Funkcja akceptuje następujące parametry:

  1. Expr - To określa wyrażenie oceniane na podstawie określonej wartości wiersza przy parametrze przesunięcia.
  2. Zrównoważyć - Ustawia liczbę wierszy, które chcesz cofnąć się z bieżącego wiersza. Domyślnie funkcja pobiera wiersz za obecną.
  3. Domyślny - Pozwala funkcji zwrócić wartość domyślną, gdy wykracza poza zakres określonego przesunięcia zamiast wartości zerowej.
  4. Query_partition_clause - Określa partycję według klauzuli w celu zorganizowania wierszy w różnych grupach.
  5. Order_by_clause - Ustawia kolejność wierszy.

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)
od pracowników EMP;

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 prev
od pracowników EMP;

Wyjś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)
od pracowników EMP;

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)
od pracowników EMP;

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.