Как вернуть значение 0, если в bigquery нет записи - PullRequest
0 голосов
/ 09 июля 2020

Мне нужно выяснить, для какой даты запись не завершается в таблице BigQuery.

Запрос, пожалуйста, найдите

select cast(creat_ts as date) as create,IFNULL(count(*) ,0) 
FROM table  
where cast(creat_ts as date)='2020-06-23' group by 1 )

Ответы [ 2 ]

2 голосов
/ 09 июля 2020

Ниже для BigQuery Standard SQL

#standardSQL
SELECT DISTINCT day
FROM UNNEST(GENERATE_DATE_ARRAY('2020-06-01', '2020-06-30')) day
LEFT JOIN `project.dataset.table` t
ON CAST(creat_ts AS DATE) = day
WHERE creat_ts IS NULL
0 голосов
/ 09 июля 2020

Вы можете попробовать что-то вроде этого:

with calendar as (
  select * from unnest(generate_date_array('2020-01-01', '2020-07-01', interval 1 day)) date
),
temp as (
  select cast(b.create_ts as date) as date from `project.dataset.table` b
),
daily_count as (
  select
    date,
    count(date.temp) as ct
  from calendar
  left join temp using(date)
  group by 1
)
select * from daily_count
where ct = 0
order by 1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...