【问题标题】:BigQuery accessing CustomDimensions with new SQL syntaxBigQuery 使用新的 SQL 语法访问 CustomDimensions
【发布时间】:2017-08-14 16:33:25
【问题描述】:

我正在迁移到 BigQuery 中的新 SQL 语法,因为它看起来更灵活。但是,在访问 customDimensions 中的字段时,我有点卡住了。我正在写一些非常简单的东西:

SELECT 
  cd.customDimensions.index,
  cd.customDimensions.value
FROM `xxxxx.ga_sessions_20170312`, unnest(hits) cd
limit 100

但我得到了错误

Error: Cannot access field index on a value with type ARRAY<STRUCT<index INT64, value STRING>>

但是,如果我运行这样的东西就可以了:

    SELECT 
        date,
        SUM((SELECT SUM(latencyTracking.pageLoadTime) FROM UNNEST(hits))) pageLoadTime,
        SUM((SELECT SUM(latencyTracking.serverResponseTime) FROM UNNEST(hits))) serverResponseTime
   FROM `xxxxxx.ga_sessions_20170312`
    group by 1

在查询customDimensions时是否有一些不同的逻辑?

【问题讨论】:

    标签: sql google-analytics google-bigquery


    【解决方案1】:

    如果打算以扁平形​​式检索所有自定义维度,则也加入 UNNEST(customDimensions)

    #standardSQL
    SELECT 
      cd.index,
      cd.value
    FROM `xxxxx.ga_sessions_20170312`,
      unnest(hits) hit,
      unnest(hit.customDimensions) cd
    limit 100;
    

    【讨论】:

    • 哦,它需要与两个表交叉连接。好的,我明白了:)谢谢!
    • 如果这对你有用,也请mark the answer as accepted。谢谢!
    【解决方案2】:
    SELECT
    fullvisitorid,
    ( SELECT MAX(IF(index=1,value, NULL))FROM UNNEST(hits.customDimensions)) AS CustomDimension1,
    ( SELECT MAX(IF(index=2,value, NULL))FROM UNNEST(hits.customDimensions)) AS CustomDimension2
    FROM
      `XXXXXXX`, unnest(hits) as hits
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-28
      • 2013-11-02
      • 1970-01-01
      • 2014-12-25
      • 1970-01-01
      相关资源
      最近更新 更多