Ich habe eine Tabelle, die appox hat. 450.000 Datensätze. Ich muss die durchschnittliche Datennutzung pro Tag pro Benutzer für Nicht-Google Mail-Benutzer finden. Die Anwendungsnamen wie gmail, facebook, yahoo.etc werden im Feld 'name' erfasst. Wenn "Name" einen Wert wie "gmail" hat, erfasst ein anderes Feld namens "label" einen Wert als "D", der angibt, dass die Datennutzung erfasst und in zwei anderen Feldern aktualisiert wird (Datausage1, database2). Ich kann nicht 'Name' und 'Label' in der gleichen Where-Klausel haben, da es andere Werte gibt, die in 'Label' erfasst werden. Daher habe ich die Tabellen wie folgt hinzugefügt, aber die Abfrage ist nicht effizient und es läuft für eine lange Zeit. Gibt es eine andere Möglichkeit, um die gewünschten Ergebnisse zu erhalten?BigQuery runnign lang - alternative Möglichkeit, um die gewünschte Ausgabe
(SELECT
t1.network AS-Netzwerk,
(((SUM (t2.datausage1) + SUM
(t2.datausage2))/1073741824)/EXACT_COUNT_DISTINCT (t1.user))/33 AS Avg_data_GigaBytes_Per_day_Per_User,
von
(SELECT Benutzer, Starttime,
Netzwerk
FROM [Mytable]
WHERE name NOT IN ('gmail')
) t1
JOIN
(SELECT Benutzer, datausage1, datausage2
FROM [Mytable]
WHERE label = 'T'
) t2
ON t1.user = t2.user
GROUP BY 1
)
ist es einfach ineffizient? oder produziert falsches Ergebnis - was ich vermute es ist! Bitte klären Sie. und einige Beispiele von Daten wäre toll, wenn Sie zu Ihnen Frage –