Jak działa LEAD w języku SQL? Przykłady zastosowania

Jak działa LEAD w języku SQL? Przykłady zastosowania

Funkcja LEAD w SQL to jedno z tych narzędzi, które potrafią niesamowicie ułatwić analizę danych. Daje nam możliwość uzyskania wartości z kolejnego wiersza w zestawie danych, co jest niezwykle przydatne przy porównywaniu wartości między kolejnymi rekordami. Przyjrzyjmy się, jak to działa i w jakich sytuacjach warto z niej korzystać.

Co to jest funkcja LEAD w SQL?

LEAD to funkcja okna w SQL, która pozwala pobrać wartość z następnego wiersza względem obecnego. Jest ona dostępna w większości nowoczesnych systemów zarządzania bazami danych (np. PostgreSQL, MySQL od wersji 8.0, SQL Server, Oracle).

Podstawowa składnia LEAD wygląda tak:

LEAD(kolumna, przesunięcie, wartość_domyslna) OVER (PARTITION BY partycja ORDER BY kolejność)
  • kolumna – wartość z kolejnego wiersza, którą chcemy pobrać,
  • przesunięcie – liczba wierszy do przodu (domyślnie 1),
  • wartość_domyslna – opcjonalna wartość zwracana, jeśli nie ma kolejnego wiersza,
  • PARTITION BY – opcjonalne grupowanie danych,
  • ORDER BY – określenie kolejności wierszy.

Przykładowe zastosowanie funkcji LEAD

Załóżmy, że mamy tabelę dotyczącą sprzedaży:

id data_sprzedazy kwota
1 2024-06-01 100
2 2024-06-02 150
3 2024-06-03 120

Chcemy uzyskać informację o kwocie sprzedaży następnego dnia dla każdego rekordu. Wykorzystamy funkcję LEAD:

SELECT 
    id, 
    data_sprzedazy, 
    kwota, 
    LEAD(kwota, 1, 0) OVER (ORDER BY data_sprzedazy) AS nastepna_kwota
FROM sprzedaz;

Rezultat zapytania:

id data_sprzedazy kwota nastepna_kwota
1 2024-06-01 100 150
2 2024-06-02 150 120
3 2024-06-03 120 0

Jak widzimy, dla ostatniego wiersza nie ma „następnej wartości”, więc został zwrócony domyślny wynik 0.

Porównanie z funkcją LAG

Skoro mamy LEAD, to czy istnieje odpowiednik w drugą stronę? Tak! Funkcja LAG pozwala pobrać wartość z poprzedniego wiersza.

SELECT 
    id, 
    data_sprzedazy, 
    kwota, 
    LAG(kwota, 1, 0) OVER (ORDER BY data_sprzedazy) AS poprzednia_kwota
FROM sprzedaz;

Rezultat zapytania:

id data_sprzedazy kwota poprzednia_kwota
1 2024-06-01 100 0
2 2024-06-02 150 100
3 2024-06-03 120 150

Jak widać, LAG i LEAD działają na podobnej zasadzie, ale w przeciwnych kierunkach.

Kiedy warto używać LEAD?

Funkcja LEAD jest przydatna w wielu sytuacjach, w tym:

  • Analizie trendów – np. porównywanie wyników sprzedaży dzień po dniu.
  • Obliczaniu różnic pomiędzy wartościami w kolejnych wierszach.
  • Tworzeniu raportów pokazujących kolejne zdarzenia dla użytkowników.

Podsumowanie

Funkcja LEAD w SQL to świetne narzędzie do pracy z danymi w kontekście przewidywania przyszłych wartości w ramach grupowania i sortowania. Dzięki niej można w prosty sposób analizować zmiany w czasie oraz relacje między kolejnymi wierszami w tabeli.

Jeśli jeszcze nie miałeś okazji korzystać z tej funkcji, koniecznie ją przetestuj. Może okazać się nieocenionym wsparciem w analizie danych!

 

Inny ciekawy artykuł:

Jak działa NTILE w języku SQL? Przykłady zastosowania

KajoDataSpace