Funkcje LEAD i LAG
Lekcja 6 z 13 w kursie SQL dla zaawansowanych w Coddy.
Funkcje Lead i Lag pozwalają nam uzyskać wartość bieżącego wiersza sprzed n kroków lub z n kroków naprzód
Na przykład, jeśli chcemy obliczyć współczynnik dla firmy dla bieżącego wiersza i sprzed jednego miesiąca, pobieramy wartość sprzed dwóch miesięcy:
| id | revenue | month |
| 1 | 532 | 5 |
| 2 | 492 | 6 |
| 3 | 393 | 7 |
| 4 | 723 | 8 |
SELECT id, revenue, LAG(month, 1) OVER (ORDER BY MONTH) as prev_month_revenue
FROM table1 ORDER BY idW ten sposób powstanie następująca tabela:
| id | revenue | prev_month_revenue |
| 1 | 532 | |
| 2 | 492 | 532 |
| 3 | 393 | 492 |
| 4 | 723 | 723 |
W ten sposób możemy obliczyć współczynnik prev_month_revenue/revenue.
Jeśli zamiast tego użyjemy funkcji LEAD, pobierze ona wartość z następnego miesiąca dla każdego wiersza:
| id | revenue | next_month_revenue |
| 1 | 532 | 492 |
| 2 | 492 | 393 |
| 3 | 393 | 723 |
| 4 | 723 |
Wyzwanie
ŁatwyKlimatyzatory mogą być bardzo drogie. Z czasem stały się bardziej wydajne i mocniejsze, ale znaczenia tych ulepszeń nie widać z dnia na dzień. Musimy spojrzeć na nie z szerszej perspektywy, aby dostrzec zmiany w czasie.
Aby to zrobić, oblicz średnią efficiency i strength klimatyzatorów dla każdego id i month. Następnie pobierz stosunek efficiency do strength dla bieżącego miesiąca i dwóch miesięcy przed nim. Na koniec oblicz stosunek wartości dla bieżącego miesiąca do wartości sprzed dwóch miesięcy. Zwróć wyniki, w których stosunek jest większy niż 1.5. Nazwij tę kolumnę ratio_two_months.
Spróbuj swoich sił
Wszystkie lekcje w sekcji SQL dla zaawansowanych
4Podsumowanie
Wyzwanie końcowe #12Funkcje okna — część 1
Funkcja ROW_NUMBERKryterium ORDER BYKryterium PARTITION BYFunkcje LEAD i LAGWyzwanie powtórkowe nr 1Wyzwanie powtórkowe nr 2Poćwicz samodzielnie: Kompilator Python online