Ich versuche, die durchschnittliche Zeit zwischen zwei Ereignissen in meiner Firebase-Analyse mithilfe von BigQuery zu ermitteln. Die Tabelle sieht etwa so aus:Big Query Compute Durchschnittliche Zeit zwischen zwei benutzerdefinierten Ereignissen
Ich mag würde die timstamp_micros für die LOGIN_CALL und LOGIN_CALL_OK Ereignisse zu sammeln, subtrahieren LOGIN_CALL von LOGIN_CALL_OK und berechnen den Durchschnitt für diese in allen Reihen.
#standardSQL
SELECT AVG(
(SELECT
event.timestamp_micros
FROM
`table`,
UNNEST(event_dim) AS event
where event.name = "LOGIN_CALL_OK") -
(SELECT
event.timestamp_micros
FROM
`table`,
UNNEST(event_dim) AS event
where event.name = "LOGIN_CALL"))
from `table`
Ich habe es geschafft, entweder die niedrigen oder die hallo Zahlen aufzulisten, aber jedes Mal, wenn ich versuchen, jede Mathematik zu tun auf ihnen, dass ich in Fehler betreibe ich auseinander zu ziehen bin zu kämpfen. Dieser Ansatz scheint oben wie es funktionieren sollte, aber ich erhalte den folgenden Fehler:
Error: Scalar subquery produced more than one element
ich diesen Fehler zu lesen bedeutet, dass jeder der UNNEST() -Funktionen ein Array zurückgibt, und nicht einzelne Wert, der AVG verursacht zu Kotzen. Ich habe versucht, einmal zu ernest und einen "niedrigen" und "hallo" Namen auf die Werte anzuwenden, aber kann nicht herausfinden, wie man mit dem event_dim.name richtig filtert.
Sie müssen eine Art ID haben, um LOGIN_CALL und LOGIN_CALL_OK zu verbinden, um einen sinnvollen Unterschied zwischen ihnen zu machen. –
Nicht sicher, ob ich folge? Diese werden in der BigQuery DB in einzelne Zeilen gepackt ... die Namen der Ereignisse wären die ID, glaube ich? –
Ah Entschuldigung Ich denke, ich folge jetzt ein bisschen weiter - es ist eine ID in der Tabelle, ich habe es oben nur nicht enthalten. –