
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
Opanuj SQL z moim kursem!
Poznasz zarówno podstawy, jak i zaawansowane zapytania analityczne (CTE, subqueries, window functions). Nauczysz się pracować na różnych silnikach – na kursie pracujemy zarówno na MySQL, jak i na Postgres. Wszystko zainstalujemy na Twoim komputerze, plus dostaniesz mnóstwo zestawów danych do ćwiczeń.
Zostań analitykiem danych – dołącz do KajoDataSpace!
Najlepsza ścieżka do zawodu analityka danych. Dostęp do pełnych wersji kursów online z Excela, SQLa, Tableau i Pythona z certyfikatami + specjalistycznych webinarów z PowerBI.
Ekskluzywana ale pomagająca sobie społeczność.
Ponad 61 godzin materiałów video.
Spotkania LIVE co miesiąc.
Mój osobisty mentoring.