Porównywanie okresów z użyciem LAG
Oddział terenowy w Idaho chce sprawdzić, ile testów przeprowadzono w każdym okresie testowym (rok i miesiąc), w którym dana stacja była aktywna, i porównać te wartości z poprzednim okresem. Na początek analizą ma zostać objęta stacja testowa 13903 w hrabstwie Minidoka.
To ćwiczenie jest częścią kursu
Wprowadzenie do Redshift
Instrukcje do ćwiczenia
- Zbuduj CTE o nazwie
minidoka_13903, które pobiera wszystkie kolumny z tabeliidaho_samplei dodaje kolumnędate_sampled– konwersję polasample_datena typ date – dla stacji 13903. - W zapytaniu głównym:
- Policz rekordy dla bieżącego miesiąca.
- Policz rekordy dla poprzedniego miesiąca za pomocą funkcji okna.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
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;