【问题标题】:presto athena tables as variables [duplicate]presto athena 表作为变量[重复]
【发布时间】:2021-11-01 13:18:12
【问题描述】:

我在 aws-athena 中有一个 SQL,看起来或多或少像这样

SELECT * FROM "db1"."2021_08_31" WHERE condition
Union
SELECT * FROM "db2"."2021_08_31" WHERE condition

...

有没有一种智能的重写方法,所以如果我想从2021_08_31 切换到2021_09_30,我只需要在一个地方进行更改。例如如下(这不起作用)

tbl = "2021_09_30"

SELECT * FROM "db1".tbl WHERE condition
Union
SELECT * FROM "db2".tbl WHERE condition

【问题讨论】:

    标签: amazon-athena presto


    【解决方案1】:

    您可以使用 WITH 子句来分解对基础表的访问:

    WITH data AS (TABLE "db1"."2021_08_31")
    SELECT * FROM data WHERE condition1
    UNION
    SELECT * FROM data WHERE condition2
    ...
    

    【讨论】:

    • 谢谢,很遗憾这不起作用,因为有两个不同的 dbs db1 和 db2。两者的表名相同,我的目标是只正确一次表名。
    【解决方案2】:

    SQL 不支持此功能。您可以使用 Athena API 和 StartQueryExecution 调用,并在提交作业之前为该查询提供一个模板。

    【讨论】:

    • 谢谢,听起来很有趣。使用 Athena web ui 时是否也有类似的功能?
    猜你喜欢
    • 1970-01-01
    • 2019-11-25
    • 2022-10-04
    • 2017-06-17
    • 2015-10-15
    • 2021-10-16
    • 2021-12-17
    • 2020-11-02
    • 2021-02-19
    相关资源
    最近更新 更多