UNNEST event_params 后表名缺失数据集
Posted
技术标签:
【中文标题】UNNEST event_params 后表名缺失数据集【英文标题】:Table name missing dataset after UNNEST event_params 【发布时间】:2021-08-25 12:01:06 【问题描述】:我正在尝试执行以下查询:
SELECT
(SELECT ep.value FROM ep
WHERE ep.key = 'key_name') AS key_name
FROM analytics_tables.events_20210824 e CROSS JOIN
UNNEST(event_params) AS ep
WHERE e.event_name = 'item_clicked' AND
ep.key = 'my_key_type' and ep.value.int_value=7;
但我收到此错误消息:
表名“ep”缺少数据集,而请求中未设置默认数据集
我应该如何引用“ep”才能使其工作?
【问题讨论】:
【参考方案1】:试试下面
SELECT
(SELECT value FROM e.event_params
WHERE key = 'key_name') AS key_name
FROM analytics_tables.events_20210824 e CROSS JOIN
UNNEST(event_params) AS ep
WHERE e.event_name = 'item_clicked' AND
ep.key = 'my_key_type' and ep.value.int_value=7;
【讨论】:
太棒了!这是一个盲目的镜头,因为我不知道确切的模式。很高兴它对你有用!如果有帮助,也请给答案投票【参考方案2】:你应该在处理表之前先设置你的数据库,否则它不知道从哪个数据库中提取数据。
USE database;
此解决方案摘自以下quickstart。
【讨论】:
请注意 analytics_tables.events_20210824 工作正常。 "ep" 不是表格,而只是 unnest 的结果,UNNEST(event_params) AS ep。以上是关于UNNEST event_params 后表名缺失数据集的主要内容,如果未能解决你的问题,请参考以下文章
具有 unnest 的 PostgreSQL 查询不返回空值的结果行