代码之家  ›  专栏  ›  技术社区  ›  mon

AWS雅典娜(普雷斯托)-带语句的多个

  •  1
  • mon  · 技术社区  · 3 年前

    在Athena/Presto中,有没有一种方法可以使用多个WITH语句?

    WITH "revenue" AS (
        SELECT 
            "cik",
            "accession",
            "year",
            "quarter",
            "form type" as "form_type",
            CAST("value" AS bigint) as "revenue",
            CAST("value" - lag("value") over (partition by "cik") AS bigint) as "increment",
            ROUND("value" / lag("value") over (partition by "cik"),2) as "ratio"
        FROM "gaap" 
        WHERE 
            "form type" IN ('10-K')
            AND "rep" = 'revenue'
        ORDER BY
            "cik", "year", "quarter", "fs" desc
    )
    
    WITH "cik_with_continuous_growth" AS (
        SELECT "cik"
        FROM "revenue"
        WHERE
            "ratio" >= 1.5
            AND "year" >= 2016
        GROUP BY "cik"
        HAVING COUNT("ratio") >= 3
        ORDER BY "cik"
    )
    
    SELECT * FROM "cik_with_continuous_growth";
    

    错误

    只允许使用一条sql语句。Got:将“收入”作为(选择“cik”、“加入”、“年度”、“季度”、“表格类型”作为“表格类型”),将“价值”作为“收入”,将“价值”-滞后(“价值”)作为“增量”,将“价值”-滞后(“价值”)作为“增量”,将“价值”-滞后(“价值”)作为“cik”分割,2) 作为“gaap”中的“比率”,其中(“10-K”)中的“形式类型”和“代表”=按“cik”、“年度”、“季度”、“财政司司长”排序的“收入”,其中“持续增长的cik”作为(从“收入”中选择“cik”,其中“比率”>=1.5,“年度”>=2016年,按“cik”进行分组,其中“比率”>=3按“cik”订购)从“持续增长的cik”中选择*#其中“收入”。“cik”=“持续增长的cik”。“cik”;

    2 回复  |  直到 3 年前
        1
  •  1
  •   Judi    3 年前

    你试过了吗 with a as ( ) , b as () select * from a,b

        2
  •  1
  •   Gordon Linoff    3 年前
    WITH "revenue" AS (,
         SELECT "cik", "accession", year, quarter.
                "form type" as "form_type",
                CAST("value" AS bigint) as "revenue",
                CAST("value" - lag("value") over (partition by "cik") AS bigint) as "increment",
                ROUND("value" / lag("value") over (partition by "cik"),2) as "ratio"
         FROM "gaap" 
         WHERE "form type" IN ('10-K') AND
        "rep" = 'revenue' AND
        ORDER BY "cik", "year", "quarter", "fs" desc
    ),
    "cik_with_continuous_growth" AS (
     SELECT "cik"
     FROM "revenue"
     WHERE "ratio" >= 1.5 AND
           "year" >= 2016
     GROUP BY "cik"
     HAVING COUNT("ratio") >= 3
     ORDER BY "cik"
    )
    SELECT * FROM "cik_with_continuous_growth";