2016-10-18 3 views
0

Я пытаюсь запросить базовый размер уровня продукта из GA в сочетании с пользовательскими измерениями на уровне продукта, и я не могу заставить его работать :( Любая помощь и/или предложения более чем приветствуются ! (текущий запрос ниже)Нестандартные размеры продукта на уровне продукта BigQuery

SELECT 
 
    date, 
 
    hits.product.v2ProductName AS productName, 
 
    hits.product.productSKU AS SKU, 
 
    MAX(IF(hits.product.customDimensions.index=126,hits.product.customDimensions.value, null)) WITHIN hits AS customDimesion126, 
 
    COUNT(hits.transaction.transactionId) 
 
FROM 
 
    TABLE_DATE_RANGE([XXX.ga_sessions_],TIMESTAMP('2016-10-16'), TIMESTAMP('2016-10-16')) 
 

 
WHERE 
 
    hits.transaction.transactionId IS NOT NULL 
 
    
 
GROUP BY 
 
    date, 
 
    productName, 
 
    SKU

+0

Какая ошибка? – Nebi

+0

@Nebi, Недопустимая смесь функций агрегирования с областью видимости и нераспространения – Arjen

+0

Вы видели этот прошлый вопрос? Возможно, вы сможете адаптировать ответ к вашим потребностям: http://stackoverflow.com/questions/39998428/select-several-event-params-in-a-single-row-for-firebase-events-stored-in- Google/40000034. Я также увижу, могу ли я найти запрос. –

ответ

0

у меня нет доступа к таблице с вполне той же схеме, чтобы иметь возможность попробовать это, но делает что-то вроде этой работы запроса? Вам нужно включить standard SQL для его запуска (снимите флажок «Использовать устаревший SQL» в разделе «Показать опцию» ионы "):

SELECT 
    date, 
    hits.product.v2ProductName AS productName, 
    hits.product.productSKU AS SKU, 
    (SELECT value 
    FROM UNNEST(hits.product.customDimensions) 
    WHERE index=126) AS customDimension126, 
    COUNT(*) 
FROM 
    `your-dataset.ga_sessions_*` t, t.hits hits 
WHERE 
    _PARTITION_TIME = '2016-10-16' AND 
    hits.transaction.transactionId IS NOT NULL 
GROUP BY 
    date, 
    productName, 
    SKU; 
0

То же самое здесь - у меня нет доступа к таблице с вполне той же схеме, чтобы иметь возможность попробовать это - так и внизу снимается в воздухе: о)

Для BigQuery Legacy SQL - так как я хотел как можно больше сохранить исходный запрос

SELECT 
    DATE, 
    productName, 
    SKU, 
    customDimesion126, 
    SUM(cnt) AS transactions 
FROM (
    SELECT 
    DATE, 
    hits.product.v2ProductName AS productName, 
    hits.product.productSKU AS SKU, 
    MAX(IF(hits.product.customDimensions.index=126,hits.product.customDimensions.value, NULL)) WITHIN hits AS customDimesion126, 
    COUNT(hits.transaction.transactionId) WITHIN hits AS cnt 
    FROM 
    TABLE_DATE_RANGE([XXX.ga_sessions_],TIMESTAMP('2016-10-16'), TIMESTAMP('2016-10-16')) 
    WHERE 
    hits.transaction.transactionId IS NOT NULL 
) 
GROUP BY 
    DATE, 
    productName, 
    SKU, 
    customDimesion126 
Смежные вопросы