Snowflake CTE 中的访问表属性
Posted
技术标签:
【中文标题】Snowflake CTE 中的访问表属性【英文标题】:Accees table attribute in Snowflake CTE 【发布时间】:2021-05-27 12:22:47 【问题描述】:use database DQ_MART;
use schema WORKING;
WITH ASCENDER_EMPLOYEE AS (
**SELECT DISTINCT EMPLOYEE_ID FROM RECONCILLIATION_ASCENDER_WORKER_TIMESHEET**
),
WORKDAY_EMPLOYEE AS (
**SELECT DISTINCT EMPLOYEE_ID FROM RECONCILLIATION_WORKDAY_WORKER_TIMESHEET**
)
SELECT 'Missing employee in Ascender' DQ_RULE_NAME,
RECONCILLIATION_WORKDAY_WORKER_TIMESHEET.EMPLOYEE_ID KEY
FROM WORKDAY_EMPLOYEE WORKDAY
LEFT OUTER JOIN ASCENDER_EMPLOYEE ASCENDER
ON ASCENDER.EMPLOYEE_ID = WORKDAY.EMPLOYEE_ID
;
大家好,我对 Snowflake SQL CTE 有点陌生。在上面的查询中,我收到一个错误,Error: invalid identifier 'RECONCILLIATION_WORKDAY_WORKER_TIMESHEET.EMPLOYEE_ID' (line 16) in this line
RECONCILLIATION_WORKDAY_WORKER_TIMESHEET.EMPLOYEE_ID
访问同一张表的select语句运行正常。 表所在的数据库和架构设置正确,并且我确实对表有 SELECT 授权。
Snowflake 中是否存在导致错误发生的范围可见性。欢迎提出任何建议。
【问题讨论】:
【参考方案1】:“RECONCILLIATION_WORKDAY_WORKER_TIMESHEET.EMPLOYEE_ID”表示“RECONCILLIATION_WORKDAY_WORKER_TIMESHEET”表中的“EMPLOYEE_ID”列。
您使用此列的选择语句是:
SELECT <column list>
FROM WORKDAY_EMPLOYEE WORKDAY
LEFT OUTER JOIN ASCENDER_EMPLOYEE ASCENDER
ON ASCENDER.EMPLOYEE_ID = WORKDAY.EMPLOYEE_ID
其中不包含名为 RECONCILLIATION_WORKDAY_WORKER_TIMESHEET 的表 - 这就是您收到错误的原因
【讨论】:
以上是关于Snowflake CTE 中的访问表属性的主要内容,如果未能解决你的问题,请参考以下文章
在 Snowflake 中使用 CTE 进行 MATCH_RECOGNIZE