Ich habe die folgende Abfrage:BigQuery Fehler: nicht wiederholt Feld Partition auf hits.product.sku
SELECT
a.fv fv,
a.v v,
a.sku asku
b.sku bsku from(
SELECT
fv,
v,
sku from(FLATTEN((
SELECT
fullvisitorid fv,
visitid v,
hits.product.productsku sku,
hits.product.isclick click
FROM (TABLE_DATE_RANGE([dataset_id], DATE_ADD(CURRENT_DATE(), -5, 'day'), DATE_ADD(CURRENT_DATE(), -0, 'day'))),
(TABLE_DATE_RANGE([dataset_id_intraday_], DATE_ADD(CURRENT_DATE(), -2, 'day'), DATE_ADD(CURRENT_DATE(), 0, 'day')))), hits.product))
WHERE
1 = 1
AND click IS NOT NULL
GROUP EACH BY
fv,
v,
sku) a
LEFT JOIN EACH (
SELECT
fv,
v,
sku from(FLATTEN((
SELECT
fullvisitorid fv,
visitid v,
hits.product.productsku sku,
hits.ecommerceaction.action_type act
FROM (TABLE_DATE_RANGE([dataset_id], DATE_ADD(CURRENT_DATE(), -5, 'day'), DATE_ADD(CURRENT_DATE(), -0, 'day'))),
(TABLE_DATE_RANGE([dataset_id._intraday_], DATE_ADD(CURRENT_DATE(), -2, 'day'), DATE_ADD(CURRENT_DATE(), 0, 'day')))), hits.product))
WHERE
1 = 1
AND act = '6') b
ON
a.fv = b.fv
AND a.v = b.v
AND a.sku = b.sku
Diese Abfrage ist nur ein Beispiel für das Problem, das wir hier haben, werden. Wenn wir versuchen, es zu laufen, bekommen wir den Fehler:
Error: Cannot partition on repeated field hits.product.sku
Aber wir konnten nicht herausfinden, was los ist.
Grundsätzlich gibt es zwei Gruppen: a
die Gruppe ist, wo wir skus bringen und wenn sie alle Klicks hatte. Gruppe b
wir beobachten nur, ob der angegebene SKU gekauft wurde oder nicht.
Dann passen wir left join
an fullvisitors
, ihre session id
und jede sku
.
Aber auch wenn wir versucht, die FLATTEN
Funktion wenden wir immer noch die gleiche Fehlermeldung haben.
Wir wissen, dass wir etwas falsch machen, konnte aber nicht so weit finden, was es ist.
Gibt es einen Fehler in der Abfrage?
Vielen Dank im Voraus,
Beachten Sie, dass Sie weniger wahrscheinlich diese Art von Problemen zu treffen, wenn [Standard-SQL] (https: // cloud.google.com/bigquery/docs/reference/standard-sql/) in BigQuery. Für Unterschiede zwischen herkömmlichen und Standard-SQL, werfen Sie einen Blick auf die [Migrationsleitfaden] (https://cloud.google.com/bigquery/docs/reference/standard-sql/migrating-from-legacy-sql). –
Wir werden jetzt alle Abfragen auf die Standardversion migrieren. Die Vorteile sind auch ziemlich gut, also werden wir hoffentlich mehrere Probleme damit lösen. Danke für den Tipp! –