Snowflake创建物化视图后执行数据插入报RSSIMOY无效标识符错误
报错触发的根本原因
- 首先是数据源引用错误:你原本计划将自建物化视图
vue_mat_wifi_mac的统计结果写入目标表,但实际执行的插入语句中,from子句仍然指向原始明细数据表ext_iot_wifi_mac,完全没有读取物化视图的内容。 - 其次是自定义列的作用域错误:你在查询中引用的
RSSIMOY并不是原始明细表的原生字段——这个名称是你创建物化视图时,给avg(rssi)聚合结果定义的别名,仅存在于物化视图的字段结构中,原始明细表根本不存在这个列。哪怕你将RSSIMOY改成小写的rssimoy,只要数据源仍为ext_iot_wifi_mac,依然会触发标识符不存在的报错。 - 最后是大小写匹配的隐含规则放大了报错表现:多数SQL引擎对未加双引号包裹的标识符,会自动转为小写进行存储和匹配,你在查询中写的大写无引号
RSSIMOY,引擎会尝试匹配对应的小写列名,结合数据源引用错误的问题,最终编译阶段就抛出invalid identifier 'RSSIMOY'的异常。
修正后的参考插入语句
insert into wifi_mac_staging(rssimoy, tranche_heure, macadr, nbcapture) select rssimoy, tranche_heure, macadr, nbcapture from vue_mat_wifi_mac;
补充说明:你提到直接查询
ext_iot_wifi_mac可正常运行,是因为此前的查询均使用原表自带的原生字段,从未尝试查询仅归属于物化视图的自定义聚合列,因此没有触发标识符不存在的异常。
内容的提问来源于stack exchange,提问作者antoine vokleber
相关产品推荐
相关产品推荐

