Wir versuchen, Skript für einen Trichter für Google BigQuery zu verwenden, dass Doug Mackenzie hier verknüpft erstellt: http://online-behavior.com/analytics/funnel-analysis Wir haben einige Probleme mit unserem SQL-Aufruf aufgetreten.Funnel Legacy SQL Filter Probleme - BigQuery
Wir versuchen, einen Filter aus einem hits.customDimensions.index = 20 zu verwenden, wo der Wert 1 ist. Diese Werte sind immer vorhanden, daher ist ein einfacher Filter wie der in seiner Einführung als Beispiele verwendete leider nicht ausreichend . Ein Filter wie:
WHERE hits.customDimensions.index = '20'
Filtert nicht, was wir gefiltert haben müssen.
Vielmehr brauchen wir (wir denken) so etwas wie dieses:
WHERE MAX(IF(hits.customDimensions.index=20,hits.customDimensions.value,NULL)) WITHIN hits as locked= '1'
Dies ist, wie wir es versucht haben zu tun:
FROM (
SELECT
fullVisitorId,
visitId,
MIN(hits.hitNumber) AS firstHit,
MAX(IF(hits.isExit, 1, 0)) AS exit
FROM(
SELECT
*,
MAX(IF(hits.customDimensions.index=20,hits.customDimensions.value,NULL)) WITHIN hits as locked,
FROM
TABLE_DATE_RANGE([[dataset.ga_sessions_], TIMESTAMP('2017-06-01'), TIMESTAMP('2017-06-04'))
)
WHERE
REGEXP_MATCH(hits.page.pagePath, '^/plus/.*/[0-9]')
AND totals.visits = 1
AND locked= '1'
GROUP BY
fullVisitorId,
visitId) s0
Dieser den Fehler zurückgibt:
Fehler: nicht abfragen das Kreuzprodukt der wiederholten Felder customDimensions.index und hits.kunde. ; Kann das Kreuzprodukt der wiederholten Felder customDimensions.value und hits.unde nicht abfragen.
Wir haben gesehen, dass es einige Vorschläge gibt, auf Probleme mit dem oben genannten Fehler zu verwenden. Allerdings hat dies scheint Syntaxfehler zu geben:
FROM (
SELECT
fullVisitorId,
visitId,
MIN(hits.hitNumber) AS firstHit,
MAX(IF(hits.isExit, 1, 0)) AS exit,
MAX(IF(hits.customDimensions.index=20,hits.customDimensions.value,NULL)) WITHIN hits AS locked
FROM
FLATTEN(TABLE_DATE_RANGE([[dataset.ga_sessions_], TIMESTAMP('2017-06-01'), TIMESTAMP('2017-06-04')),hits.customDimension)
WHERE
REGEXP_MATCH(hits.page.pagePath, '^/plus/.*/[0-9]')
AND totals.visits = 1
AND locked = '1'
GROUP BY
fullVisitorId,
visitId) s0
gibt einfach den Fehler: Error: Not found: Table eb-bigquery:3917183.ga_sessions_
Also irgendwelche Vorschläge, wie wir die Filter bekommen würden zu arbeiten, sehr geschätzt werden.
Ich frage mich nur, gibt es einen Grund, die [Standard] (https://cloud.google.com/bigquery/docs/reference/standard-sql/) Version von BQ nicht zu verwenden? –
Das Skript, das wir verwenden, generiert den SQL-Aufruf in Legacy. – Sofu5