2017-03-22 36 views
2

BigQueryの新しいSQL構文に移行しています。しかし、私はそれがcustomDimensionsのフィールドにアクセスするには、ちょっと立ち往生しています。私はこのような非常にシンプルなもの書いています:新しいSQL構文でCustomDimensionsにアクセスするBigQuery

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 

は、いくつかの異なるがありますカスタムディメンションをクエリするときのロジックですか?

答えて

3

意図が平坦化された形式ですべてのカスタム寸法を取得するためであれば、同様UNNEST(customDimensions)に参加:

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

をああ、それは両方のテーブルと結合交差する必要があります。さて、私はそれを得る:)ありがとう! –

+0

これがうまくいく場合は、[受け入れられたとして回答をマークする](http://stackoverflow.com/help/someone-answers)もご覧ください。ありがとう! –

1
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 
関連する問題