Ich bin relativ neu im Konzept der verschachtelten Daten und versuche, meinen Kopf auf den richtigen Weg zu bringen, um einige GA-Daten in BigQuery zu glätten (https://support.google.com/analytics/answer/3437719?hl=en).BigQuery UNNEST Keine Ergebnisse
Nun um einen Kontext zu geben, versuche ich für jede Besuchersitzung die Liste der betrachteten Produkt-SKUs zu erfassen (Detailansicht) und wenn es eine Transaktion gab, die Transaktions-ID. Durch meine Rechnung, und nach ein wenig Forschung zu tun, der einfachste Weg, dies zu tun, sieht wie folgt aus, mit LEFT JOINS alles zurück zu bringen:
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
Allerdings scheint dies Null Ergebnisse zurück, wo TrID nicht null ist ....
Ich habe dann versucht, die oben genannten in zwei Abfragen zu trennen und zu verbinden. Dies scheint zu funktionieren und ergibt eine scheinbar vernünftige Anzahl von Zeilen (~ 1000), wobei trId nicht null ist.
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
Es wäre fantastisch, wenn jemand erklären könnte, warum die beide mich mit allen Arten von verschachteltem Spaß in der Zukunft .... Danke einlassen nicht die gleiche Antwort geben und hoffentlich ausrüsten!
Eine fantastische, prägnante Antwort, und was für ein Gentleman, um darüber hinaus zu gehen und vorzuschlagen, wie ich Dinge optimieren könnte, um meine Arbeit leichter zu machen. @Will danke !! – jptk