Lag/Lead kehysikkunoilla
Yhdistä LAG/LEAD kehysikkunoihin jaksojen muutosten laskemiseksi ja aikasarjojen aukkojen tunnistamiseksi.
Lag/Lead kehysikkunoilla on ilmainen SQL Academy-oppitunti CoddyKitissä. Tämä on oppitunti 2/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu SQL Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. SQL Academy-kurssilla on yhteensä 4 oppituntia.
LAG/LEAD-kertaus
LAG(col, n) palauttaa ikkunassa nykyistä riviä n riviä aiemman arvon. LEAD(col, n) tarkastelee tulevia rivejä.
SELECT day, revenue,
LAG(revenue) OVER (ORDER BY day) AS prev_day_revenue
FROM daily_revenue;LAG oletusarvon kanssa
Kolmas argumentti on oletusarvo tilanteessa, jossa naapuririviä ei ole:
LAG(revenue, 1, 0) OVER (ORDER BY day)
-- Returns 0 instead of NULL for the very first row.Erotusten laskeminen
Päiväkohtainen muutos:
SELECT day, revenue,
revenue - LAG(revenue, 1, 0) OVER (ORDER BY day) AS delta
FROM daily_revenue;Monivaiheinen LAG
Vertaa arvoon N päivää sitten — hyödyllinen viikko- ja vuositasoisissa vertailuissa:
LAG(revenue, 7) OVER (ORDER BY day) -- 7 days ago
LAG(revenue, 365) OVER (ORDER BY day) -- 1 year agoLEAD ennustepaikkoja varten
”Mikä tapahtuma tulee seuraavaksi?” -tyyppiset ratkaisut:
SELECT id, ts,
LEAD(ts) OVER (PARTITION BY user_id ORDER BY ts) AS next_ts,
LEAD(ts) OVER (PARTITION BY user_id ORDER BY ts) - ts AS gap_to_next
FROM events;Käyttäjäkohtaiset mallit
LAG ja LEAD ottavat PARTITION BY -jaon huomioon:
SELECT user_id, ts, action,
LAG(action) OVER (PARTITION BY user_id ORDER BY ts) AS prev_action
FROM events;
-- prev_action is the user's previous event, not globally.Tilamuutosten tunnistaminen
Yhdistä LAG ja CASE:
SELECT id, status,
CASE WHEN status <> LAG(status) OVER (ORDER BY ts) THEN 'changed' ELSE 'same' END
FROM orders;FIRST_VALUE / LAST_VALUE
Kehyksen ensimmäinen tai viimeinen arvo:
FIRST_VALUE(status) OVER (PARTITION BY order_id ORDER BY ts) AS first_status
-- The status when the order was first seen.
LAST_VALUE(status) OVER (
PARTITION BY order_id ORDER BY ts
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
) AS final_statusNTH_VALUE
Järjestetyn ikkunan N:s arvo:
NTH_VALUE(revenue, 3) OVER (
ORDER BY revenue DESC
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
)
-- Third-highest revenue value.Ryhmäkohtaisten kehysten funktiot
Yhdistä LAG ja PARTITION BY ryhmiteltyjä naapuririvejä varten:
SELECT user_id, ts, page,
LAG(page) OVER (PARTITION BY user_id ORDER BY ts) AS prev_page,
LEAD(page) OVER (PARTITION BY user_id ORDER BY ts) AS next_page
FROM page_views;Suorituskyky
Ikkunafunktiot lajittelevat kunkin osion kerran. Indeksoi (PARTITION BY, ORDER BY) -sarakkeet, kun osiot ovat suuria.
Kertaus
LAG ja LEAD tekevät rivien välisestä vertailusta edullista.
- Oletusarvo välttää NULL-arvon
- Yhdistä CASE- lausekkeeseen tilamuutosten tunnistamista varten
- FIRST_VALUE/LAST_VALUE/NTH_VALUE täydentävät funktioperhettä
Pikatarkistus
Haluatte lisätä jokaiselle riville käyttäjän seuraavaan tapahtumaan kuluvan ajan sekunteina. Mitä funktiota käytätte?
Opi SQL tekoälytuutorin avulla — ilmaiseksi
Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.
- Kurssit
- 46
- Oppitunnit
- 183
Usein kysytyt kysymykset
Onko oppitunti ”Lag/Lead kehysikkunoilla” ilmainen?
Kyllä – oppitunnin ”Lag/Lead kehysikkunoilla” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko SQL Academy-kurssin, päivitä CoddyKit PROhon. SQL Academy-kurssilla on yhteensä 4 oppituntia.
Mitä opin oppitunnilla ”Lag/Lead kehysikkunoilla”?
Yhdistä LAG/LEAD kehysikkunoihin jaksojen muutosten laskemiseksi ja aikasarjojen aukkojen tunnistamiseksi. Harjoittelet SQL Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni SQL Academy-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin SQL Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 2/4.
Kuinka kauan ”Lag/Lead kehysikkunoilla”-oppitunnin suorittaminen kestää?
Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.
Voinko kirjoittaa ja suorittaa koodia tällä SQL Academy-oppitunnilla?
Kyllä. Jokainen SQL Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.
Kaikki tämän kurssin oppitunnit
- Kehyslausekkeet: ROWS ja RANGE
- Lag/Lead kehysikkunoilla
- Ryhmittely NTILE- ja Cume_Dist-funktioilla
- Käytännön raportointimallit