НачатьНачать бесплатно

Сравнение периодов с помощью LAG

Полевой офис в Айдахо хочет видеть, сколько тестов было проведено в каждом периоде (год и месяц), когда станция была выбрана, и сравнивать это значение с предыдущим периодом. Начнём с тестовой станции 13903 в округе Минидока.

Это упражнение является частью курса

Введение в Redshift

Посмотреть курс

Инструкции к упражнению

  • Создайте CTE minidoka_13903, выбрав все столбцы из idaho_sample и добавив дополнительный столбец (date_sampled) — sample_date, преобразованный к типу date, — для станции 13903.
  • В основном запросе:
    • Подсчитайте записи за текущий месяц
    • Подсчитайте записи за предыдущий месяц с помощью оконной функции.

Интерактивное практическое упражнение

Попробуйте выполнить это упражнение, дополнив этот пример кода.

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;
Редактировать и запускать код