【问题标题】:Table name missing dataset after UNNEST event_paramsUNNEST 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”才能使其工作?

【问题讨论】:

    标签: google-bigquery


    【解决方案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。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-07-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-11
    • 2019-07-03
    相关资源
    最近更新 更多