Why I get a "Syntax error:L compilation error: (line ..." when trying to create a Snowflake UDTF? If I comment the line: "AND IDENTIFIER(baseline) = I.COMP" the function compiles correctly but do not generate the expected results.
SQL is the handler for the function.
CREATE OR REPLACE FUNCTION fn_Shopper_Insights(dx_id varchar, business varchar, baseline varchar)
RETURNS TABLE(name varchar, value varchar)
LANGUAGE SQL
AS
$$
SELECT V.name, V.value
FROM (
SELECT name, value
FROM (
SELECT
Q1.GRP AS NAME,
Q1.AGG AS VALUE,
ROW_NUMBER() OVER (PARTITION BY GRP ORDER BY INDEX DESC) AS RNK
FROM (
-- demographics
(
SELECT
D.DX_ID, D.PROJECT_TYPE AS GRP, D.MVS_DESC AS AGG, D.PCT, DIV0NULL(D.PCT, I.PCT) AS INDEX
FROM store_pro_demos_long D
INNER JOIN index_dim A USING(DX_ID)
INNER JOIN index_demos_pct I
ON D.MVS_DESC = I.MVS_DESC
AND IDENTIFIER(baseline) = I.COMP
AND I.BASELINE = baseline
WHERE D.DX_ID = dx_id
)
) Q1
) WHERE RNK = 1
) V
$$;