Как манипулировать CURRENT_DATE () в Google BigQuery? - PullRequest
0 голосов
/ 02 марта 2020

У нас есть запланированный запрос в BigQuery, который добавляет данные в таблицу на основе большого представления. Представление ссылается на другие представления, которые, в свою очередь, ссылаются на другие представления. На самом низком уровне представления получают данные на основе CURRENT_DATE (). Это что-то вроде этого:

Вид 1 (view_1):

SELECT Date, COUNT(1) as RecordCount FROM `project_name.dataset_name.first_table` WHERE DATE(_PARTITIONTIME) = DATE_ADD(CURRENT_DATE(), INTERVAL -1 DAY) GROUP BY Date

Вид 2 (view_2):

SELECT Date, COUNT(1) as RecordCount FROM `project_name.dataset_name.second_table` WHERE DATE(_PARTITIONTIME) = DATE_ADD(CURRENT_DATE(), INTERVAL -1 DAY) GROUP BY Date

Вид 3 (view_3): SELECT a.Date, a.RecordCount, b.RecordCount FROM `project_name.dataset_name.view_1` a LEFT JOIN `project-name.dataset_name.view_2` b ON a.Date = b.Date

То, что я хочу, это что-то вроде обратной засыпки; манипулировать CURRENT_DATE (), чтобы я мог построить эту таблицу для определенного исторического периода. Я пытался проверить это с помощью «ручного запуска», но он всегда выводит одни и те же данные. Запланированный запрос, который я написал, выглядит примерно так:

SELECT COUNT(1) as RecordCount FROM `project_name.dataset_name.table_name` WHERE DATE(_PARTITIONTIME) = DATE_ADD(CURRENT_DATE(), INTERVAL -1 DAY)

Когда я запускаю ручной запуск, начинающийся с 01-01-2020 и заканчивающийся 31-01-2020, вывод в Таблица назначения - это всегда количество записей за вчерашний день (что означает, что CURRENT_DATE () по-прежнему сегодня).

Если я правильно помню, я мог бы сделать это в прошлом, используя 'обратную засыпку', но результат в этом Кажется, отличается от ручных запусков, которые заменили засыпку.

Ожидаемый результат примерно такой:

2020-03-02 3294 11201

2020-03-01 2984 10812

2020-02-29 3121 12121

2020-02-28 2912 12239 .....

Но результат ручных прогонов:

2020-03-02 3294 11201

2020-03-02 3294 11201

2020-03-02 3294 11201

2020-03-02 3294 11201

.....

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...