首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在不对过滤条件进行硬编码的情况下,在google大查询中使用分区修剪?

如何在不对过滤条件进行硬编码的情况下,在google大查询中使用分区修剪?
EN

Stack Overflow用户
提问于 2021-05-19 20:06:51
回答 2查看 171关注 0票数 1

我在GBQ有一张大桌子,是按日期划分的。我想使用分区剪枝来优化我的查询。问题是筛选条件是从另一个表读取的值,而我不能硬编码该值。我想知道在本例中是否有使用分区剪枝的方法,也不能使用语句,因为我正在使用的调度引擎不允许这样做。这是我的代码:

代码语言:javascript
复制
WITH CTE AS
(
  SELECT tmp.partitionStartDate
  FROM tmp_table tmp
)
SELECT *      
FROM table1  t
WHERE sbcc.partitionDate = (select partitionStartDate from cte)
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-05-20 03:40:24

试试这个:

代码语言:javascript
复制
execute immediate "SELECT * FROM table1 WHERE partitionDate = ?" using (SELECT partitionStartDate FROM tmp_table);
票数 2
EN

Stack Overflow用户

发布于 2021-05-20 00:43:58

下面的脚本将起作用:

代码语言:javascript
复制
DECLARE partitionDate DEFAULT (
  SELECT tmp.partitionStartDate
  FROM tmp_table tmp
);

SELECT *      
FROM table1  t
WHERE sbcc.partitionDate = partitionDate;

代码语言:javascript
复制
EXECUTE IMMEDIATE
"""
SELECT *      
FROM table1  t
WHERE sbcc.partitionDate = @partitionDate;
""" USING (
  SELECT tmp.partitionStartDate
  FROM tmp_table tmp
) AS partitionDate;
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67610180

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档