Сравнение периодов с помощью 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;