我将一些事件保存在BigQuery表(table_a)中。在全天的00:00,我正在执行计划的查询,以将当天收到的特定事件的计数器保存在另一个表(table_b)中。当我收到此事件时,此计划的查询没有任何问题,但是如果那天我没有收到我在查询“此查询未返回任何结果”中收到的任何特定事件,则我想将具有0值的INSIGHT_VALUE添加到table_b。
我该怎么做?
这是我正在使用的计划查询:
INSERT INTO
`my_project.my_dataset.table_b` (
DATESTAMP,
INSIGHT_VALUE)
SELECT
CURRENT_TIMESTAMP() AS DATESTAMP,
COUNT(*) AS INSIGHT_VALUE
FROM
`my_project.my_dataset.table_a`
WHERE
DATE(event_datestamp, 'Europe/Madrid') = CURRENT_DATE()
AND event_message LIKE '%specific_event%'
GROUP BY
DATESTAMP
答案 0 :(得分:2)
删除GROUP BY
:
INSERT INTO `my_project.my_dataset.table_b` (DATESTAMP, INSIGHT_VALUE)
SELECT CURRENT_TIMESTAMP AS DATESTAMP,
COUNT(*) AS INSIGHT_VALUE
FROM `my_project.my_dataset.table_a`
WHERE DATE(event_datestamp, 'Europe/Madrid') = CURRENT_DATE() AND
event_message LIKE '%specific_event%'
没有GROUP BY
始终的聚合查询返回一行。大多数聚合函数返回NULL
值,但是COUNT()
返回0
。
CURRENT_TIMESTAMP
是查询中的“常量”,因此不需要将其包含在聚合中-只需在每次返回行时计算该值(当然,在 the 返回的行)。