Je suis relativement nouveau au concept de données imbriquées et j'essaie d'obtenir la bonne façon d'aplatir certaines données GA dans BigQuery (https://support.google.com/analytics/answer/3437719?hl=en). Maintenant, pour donner un peu de contexte, pour chaque session de visiteur, j'essaye de capturer la liste des références de produits qui ont été regardées (vue détaillée) et s'il y avait une transaction, l'identifiant de transaction. Pour mon compte, et après avoir fait un peu de recherche, la façon la plus simple de faire cela ressemble à cela, en utilisant GAUCHE REJOINT pour ramener tout:BigQuery UNNEST Pas de résultats
SELECT fullVisitorId as uId, visitId as vId, h.transaction.transactionId as
trId, STRING_AGG(p.productSKU, "|") as skus
FROM
`test-bigquery.12345678.ga_sessions_*` t
LEFT JOIN UNNEST(hits) h
LEFT JOIN UNNEST(h.product) p
WHERE
_TABLE_SUFFIX = '20170709'
AND h.eCommerceAction.action_type = '2'
GROUP BY uId, vId, trId
Cependant, cela semble donner aucun résultat où Trid est non nul J'ai ensuite essayé de séparer ce qui précède en deux requêtes et en les rejoignant. Cela semble fonctionner et renvoie un nombre apparemment raisonnable de lignes (~ 1000) où trId n'est pas nul.
WITH skus AS
(SELECT fullVisitorId as uId, visitId as vId, STRING_AGG(p.productSKU, "|") as skus
FROM
`test-bigquery.12345678.ga_sessions_*` t
LEFT JOIN UNNEST(hits) h
LEFT JOIN UNNEST(h.product) p
WHERE
_TABLE_SUFFIX = '20170709'
AND h.eCommerceAction.action_type = '2'
GROUP BY uId, vId),
transactions AS
(SELECT fullVisitorId as uId_trans, visitId as vId_trans, h.transaction.transactionId as trId
FROM
`test-bigquery.12345678.ga_sessions_*` t
LEFT JOIN UNNEST(hits) h
WHERE
_TABLE_SUFFIX = '20170709'
AND h.transaction.transactionId IS NOT NULL
GROUP BY uId_trans, vId_trans, trId)
SELECT skus.uId, skus.vId, transactions.trId, skus.skus
FROM skus
LEFT JOIN transactions ON transactions.vId_trans = skus.vId AND transactions.uId_trans = skus.uId
Ce serait génial si quelqu'un pourrait expliquer pourquoi les deux ne donnent pas la même réponse et je l'espère me donner les moyens de s'impliquer avec toutes sortes de plaisir imbriqué dans l'avenir .... Merci!
Une réponse fantastique, succincte, et quel gentil pour aller au-delà et suggérant comment je pourrais optimiser les choses pour rendre mon travail plus lisse. @Will merci !! – jptk