问题描述
我正在尝试创建一个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'
)