首页 > 解决方案 > 即使源为空,查询仍然会花费我们

问题描述

我有一个关于我的查询的问题,我做了一个查询,其中有一个预定的来源,这个来源有时是空的。然而,当它是空的时,它仍然会花费我们一些钱。

查询是这样的,scheduled_source_a 有时是一个空表(scheduled - truncate)

WITH scheduled_source_a AS

(SELECT *
FROM project.dataset.abc),

source_b AS

(SELECT
      date_key,
      search_id
FROM project.dataset_def)

-- Final Query

SELECT *
FROM source_b
WHERE date_key BETWEEN (SELECT (start_date) FROM table) AND (SELECT (end_date) FROM table)

是否有任何解决方法,以便当源为空时,我的最终查询根本不会花费我们?

标签: google-bigquery

解决方案


我认为无论桌子有多小,您看到的账单都应该是 10MB 的最低费用。

如果表为空,您可以使用脚本和元表来避免查询:

declare isEmpty default (select row_count > 0 from yourDataset.__TABLES__ where <table_name_filter>);
IF isEmpty 
  THEN <do somthing>
END IF;

推荐阅读