我在GBQ有一张大桌子,是按日期划分的。我想使用分区剪枝来优化我的查询。问题是筛选条件是从另一个表读取的值,而我不能硬编码该值。我想知道在本例中是否有使用分区剪枝的方法,也不能使用语句,因为我正在使用的调度引擎不允许这样做。这是我的代码:
WITH CTE AS
(
SELECT tmp.partitionStartDate
FROM tmp_table tmp
)
SELECT *
FROM table1 t
WHERE sbcc.partitionDate = (select partitionStartDate from cte)发布于 2021-05-20 03:40:24
试试这个:
execute immediate "SELECT * FROM table1 WHERE partitionDate = ?" using (SELECT partitionStartDate FROM tmp_table);发布于 2021-05-20 00:43:58
下面的脚本将起作用:
DECLARE partitionDate DEFAULT (
SELECT tmp.partitionStartDate
FROM tmp_table tmp
);
SELECT *
FROM table1 t
WHERE sbcc.partitionDate = partitionDate;或
EXECUTE IMMEDIATE
"""
SELECT *
FROM table1 t
WHERE sbcc.partitionDate = @partitionDate;
""" USING (
SELECT tmp.partitionStartDate
FROM tmp_table tmp
) AS partitionDate;https://stackoverflow.com/questions/67610180
复制相似问题