首页 > 解决方案 > 雪花:外部应用/横向

问题描述

Snowflake 显然不支持 OUTER APPLY。但是它有 LATERAL,据我所知,它的工作方式类似于 OUTER APPLY。

但是当我尝试以这种方式使用 LATER 时,我得到一个我不知道如何解决的编译错误。

这是查询:

SELECT
   *
FROM
    temp_report r
        CROSS JOIN LATERAL
            (
                SELECT
                    ROW_NUMBER() OVER (PARTITION BY rr.state_code ORDER BY rr.priority) as rule_priority,
                    *
                FROM
                    rule_rules rr
                        LEFT JOIN rule_classes rc ON rr.state_code = rc.state_code AND rr.class_group = rc.class_group
                WHERE
                    r.state_code = rr.state_code AND
                    (r.class = rc.class OR rc.class IS NULL) AND
                    ((r.years = 0 AND first_term = true) OR (r.years > 0 AND first_term = false)) AND
                    (r.years-1 % rule_interval = 0 OR rule_interval IS NULL)
            ) rr
WHERE
    rr.priority IS NULL OR rr.rule_priority = 1

我得到的错误是:无法评估不支持的子查询类型。

建议?

标签: snowflake-cloud-data-platform

解决方案


推荐阅读