Presto Sql-多个并集语句-语句太大分析期间的堆栈溢出

问题描述

我正在尝试创建一个presto表,在sql中使用all union all导致结果语句太大(分析期间堆栈溢出)

选择 ID为1, 名称为“ x” 全部合并 选择 ID为2, 名称为“ x” 合并所有

-

选择 ID为1000, 'x'作为名称

解决方法

鉴于x似乎是名称的不变静态值,您可以在此处尝试使用以下顺序:

WITH cte AS (
    SELECT s.n AS id,t.name
    FROM (SELECT 'x' AS name) t
    CROSS JOIN UNNEST(sequence(1,1000)) s(n)
)

话虽如此,如果您想继续使用当前的蛮力联合方法,则可以通过在每次选择中删除as name别名来缩短长度。您只需指定一次此别名,因此建议尝试:

WITH cte AS (
    SELECT 1 as id,'x' AS name UNION ALL
    SELECT 2,'x' UNION ALL     -- no aliases needed from here onwards
    ...
    SELECT 1000,'x'
)