Porovnání období pomocí funkce LAG
Pobočka v Idahu chce vidět, kolik testů bylo provedeno v každém testovacím období (rok a měsíc), ve kterém bylo vybráno, a porovnat toto číslo s předchozím obdobím. Začít chce s testovacím místem 13903 v okresu Minidoka.
Toto cvičení je součástí kurzu
Introduction to Redshift
Pokyny k cvičení
- Vytvoř CTE
minidoka_13903, které vybere všechny sloupce z tabulkyidaho_samplea přidá sloupec (date_sampled) s hodnotousample_datepřevedenou na datový typ datum — a to pro stanici 13903. - V hlavním dotazu:
- Spočítej záznamy pro aktuální měsíc
- Spočítej záznamy pro předchozí měsíc pomocí okenní funkce.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
WITH minidoka_13903 AS (
SELECT *,
-- Converts the sample_date to a date
___(___ AS ___) as date_sampled
FROM public_intro_redshift.idaho_samples
WHERE fk_monitoringlocation = 13903
)
SELECT DATE_PART('year', date_sampled) as sample_year,
DATE_PART('month', date_sampled) as sample_month,
-- Count the records
___,
-- Count the records for the prior month
___(___, ___) OVER (
ORDER BY DATE_PART('year', date_sampled),
DATE_PART('month', date_sampled)
) AS prior_readings
-- Use the prefiltered CTE you created above
FROM ___
GROUP BY sample_year,
sample_month
ORDER BY sample_year DESC,
sample_month DESC;