Zacznij terazZacznij za darmo

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

Zobacz kurs

Instrukcje do ćwiczenia

  • Zbuduj CTE o nazwie minidoka_13903, które pobiera wszystkie kolumny z tabeli idaho_sample i dodaje kolumnę date_sampled – konwersję pola sample_date na 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;
Edytuj i uruchom kod