2016-05-10 4 views
1
SELECT 
MAX(IF(customDimensions.index=1, customDimensions.value, NULL)) WITHIN hits 
AS CustomerID, 
date as date 
SUM(totals.visits) Visits, 
EXACT_COUNT_DISTINCT(fullvisitorid) AS Users, 
FROM [xxxxxxx.ga_sessions_xxxxx] 
Group by CustomerID; 

上記のクエリ「エラー:無効なスコープとスコープのない集計関数の混合」を実行すると、次のエラーが発生します。誰かが私にこれを修正する方法を教えてもらえますか?ここでエラースコープと未スコープのbigqueryの問題

SELECT 
    (SELECT MAX(IF(index=1, value, NULL)) 
    FROM UNNEST(customDimensions)) AS CustomerID, 
    date as date, 
    SUM(totals.visits) AS Visits, 
    COUNT(DISTINCT fullvisitorid) AS Users 
FROM `xxxxxxx.ga_sessions_xxxxx` 
GROUP BY CustomerID, date; 

は、サンプルクエリです:standard SQLを使用して

おかげ

答えて

4

は、(「表示オプション」の下の「使用レガシーSQL」ボックスのチェックを外す)、次のようなクエリを構築することができるはずですアプローチ説明するために:また

WITH SampleTable AS (
    SELECT ARRAY<STRUCT<index INT64, value STRING>> 
     [(5, "foo"), (1, "bar"), (1, "baz")] AS customDimensions, 
    "20160518" AS date, 
    STRUCT(10 AS visits) AS totals, 
    "visitorid" AS fullvisitorid 
    UNION ALL SELECT ARRAY<STRUCT<index INT64, value STRING>> 
     [(0, "foo"), (4, "bar"), (2, "baz")] AS customDimensions, 
    "20160519" AS date, 
    STRUCT(20 AS visits) AS totals, 
    "visitorid" AS fullvisitorid) 
SELECT 
    (SELECT MAX(IF(index=1, value, NULL)) 
    FROM UNNEST(customDimensions)) AS CustomerID, 
    date as date, 
    SUM(totals.visits) AS Visits, 
    COUNT(DISTINCT fullvisitorid) AS Users 
FROM SampleTable 
GROUP BY CustomerID, date; 
+------------+----------+--------+-------+ 
| CustomerID | date | Visits | Users | 
+------------+----------+--------+-------+ 
| baz  | 20160518 |  10 |  1 | 
| NULL  | 20160519 |  20 |  1 | 
+------------+----------+--------+-------+ 

を、私はあなたがリットルを使用してcustomDimensions繰り返しフィールド上の最大を計算する副問合せをする必要がありますだと思いますegacy SQL:

SELECT 
    CustomerID, 
    date as date, 
    SUM(totals.visits) Visits, 
    EXACT_COUNT_DISTINCT(fullvisitorid) AS Users 
FROM (
    SELECT 
    *, 
    MAX(IF(customDimensions.index=1, customDimensions.value, NULL)) 
     WITHIN customDimensions AS CustomerID 
    FROM [xxxxxxx.ga_sessions_xxxxx]) 
GROUP BY CustomerID, date; 
+0

これは機能しません。 – sam123

+0

何が問題になったのか説明できますか?私はあなたのテーブルのスキーマが私が提供したクエリのものであるかを推測しなければなりませんでしたが、私は無効な仮定をしているかもしれません。 –

+0

私はこれを取得しています - エラー:構文エラー:[7:1]で予期しないキーワードFROM – sam123