如何解决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'
)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。