UNION ALL добавить недостающие даты в таблицу - PullRequest
0 голосов
/ 18 сентября 2018

В настоящее время я использую UNION ALL, чтобы добавить строку в таблицу Big Query на основе current_date - 1, чтобы обеспечить наличие строки для 'вчера':

SELECT
  RowDate,
  COUNT(*) AS Records
FROM
  table1
GROUP BY
  RowDate UNION ALL
SELECT
  DATE_SUB(CURRENT_DATE(),
    INTERVAL 1 DAY) AS RowDate,
  0 AS Records
ORDER BY
  RowDate DESC

Что я хотел бысделать, это добавить строку для каждой даты в диапазоне дат.Возможно ли это в запросе представления без создания отдельной таблицы дат?

Любая помощь, высоко ценимая

1 Ответ

0 голосов
/ 18 сентября 2018

Да, вы можете использовать GENERATE_DATE_ARRAY функцию для этого

Например:

GENERATE_DATE_ARRAY('2018-01-01', '2018-01-31') AS RowDate

, поэтому в вашем конкретном случае это будет что-то вроде ниже

UNION ALL
SELECT RowDate, 0 AS Records
FROM UNNEST(GENERATE_DATE_ARRAY('2018-01-01', '2018-01-31')) AS RowDate
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...