Запрос данных за последний месяц в BigQuery: несколько методов и примеры кода

В этой статье блога мы рассмотрим различные методы запроса данных за прошлый месяц в BigQuery. Независимо от того, выполняете ли вы анализ по времени или хотите извлечь конкретную информацию за предыдущий месяц, эти методы помогут вам получить соответствующие данные с помощью SQL-запросов. Мы предоставим примеры кода для каждого метода, что позволит вам легко реализовать их в ваших проектах BigQuery.

Метод 1: использование функций DATE_SUB и CURRENT_DATE
Пример кода:

SELECT *
FROM `project.dataset.table`
WHERE DATE_TRUNC(date_column, MONTH) = DATE_TRUNC(DATE_SUB(CURRENT_DATE(), INTERVAL 1 MONTH), MONTH)

Объяснение:
Этот метод использует функцию DATE_SUBдля вычитания одного месяца из текущей даты (CURRENT_DATE()), а затем сравнивает его с усеченными значениями даты из date_column. Функция DATE_TRUNCиспользуется для извлечения месяца из значений даты, гарантируя возврат данных только за прошлый месяц.

Метод 2: использование функции EXTRACT
Пример кода:

SELECT *
FROM `project.dataset.table`
WHERE EXTRACT(MONTH FROM date_column) = EXTRACT(MONTH FROM DATE_SUB(CURRENT_DATE(), INTERVAL 1 MONTH))

Объяснение:
Этот метод использует функцию EXTRACTдля извлечения месяца из date_columnи текущей даты минус один месяц. Затем он сравнивает извлеченные значения месяца, чтобы получить данные за последний месяц.

Метод 3: использование функции TIMESTAMP_TRUNC
Пример кода:

SELECT *
FROM `project.dataset.table`
WHERE TIMESTAMP_TRUNC(date_column, MONTH) = TIMESTAMP_TRUNC(DATE_SUB(CURRENT_DATE(), INTERVAL 1 MONTH), MONTH)

Объяснение:
Этот метод использует функцию TIMESTAMP_TRUNCдля усечения значений даты до уровня месяца. Он сравнивает усеченные значения даты date_columnс усеченным значением текущей даты минус один месяц, гарантируя, что извлекаются только данные за последний месяц.

Метод 4: использование предложения BETWEEN
Пример кода:

SELECT *
FROM `project.dataset.table`
WHERE date_column BETWEEN DATE_SUB(DATE_TRUNC(CURRENT_DATE(), MONTH), INTERVAL 1 MONTH)
                       AND DATE_TRUNC(CURRENT_DATE(), MONTH)

Объяснение:
Этот метод использует предложение BETWEENдля указания диапазона дат. Мы вычитаем один месяц из усеченной текущей даты и устанавливаем его в качестве нижней границы, а верхняя граница — это усеченная текущая дата. Запрос извлекает все строки с датами, попадающими между этими двумя границами, фактически предоставляя нам данные за последний месяц.

В этой статье мы рассмотрели несколько методов запроса данных за прошлый месяц в BigQuery. Независимо от того, предпочитаете ли вы использовать функции даты, такие как DATE_SUB, EXTRACTили TIMESTAMP_TRUNC, или использовать предложение BETWEEN, эти методы поможет вам извлечь нужные данные. Включив эти методы в свои проекты BigQuery, вы сможете выполнять временной анализ и получать ценную информацию из данных за предыдущий месяц.