本文结尾建议,物化视图可以包含扁平化...https://www.snowflake.com/blog/snowflake-materialized-views-a-fast-zero-maintenance-accurate-solution/但是,如果尝试尝试,则会出现错误...“视图定义中引用了多个表”有人知道如何创建带有flat的MV的示例吗?
CREATE OR REPLACE MATERIALIZED VIEW MV_SOMETHING
AS
SELECT
F.ID,
A.VALUE:Type::string AS ATTRIBUTE_TYPE,
A.VALUE:Value::string AS ATTRIBUTE_VALUE
FROM
FRAME F
, lateral flatten(input => F.ENVIRONMENT) A;
以下内容对我来说很好。您需要FLATTEN()用于数组,但不需要用于对象。也许您正在混合两者?
CREATE OR REPLACE TABLE T AS
SELECT 1 ID, ARRAY_CONSTRUCT(1, 2, 3) A, OBJECT_CONSTRUCT('X', 2, 'Y', 3) O;
CREATE OR REPLACE MATERIALIZED VIEW T_MV AS
SELECT
ID,
O:X::NUMBER OC_X,
O:Y::NUMBER OC_Y,
VALUE A
FROM T, LATERAL FLATTEN(INPUT => A);