reagiert Wenn ich BQ Abfrage mit ROLLUP von potenziell großem Satz von Kriterienfeld Gruppierung (in diesem Fall campaign_group_id
)Kann BigQuery Teilsumme Zeilen fallen, wenn auf ROLLUP- Abfrage
zum Beispiel:
SELECT
campaign_group_id AS campaign_group_id,
DATE(DATE_ADD(TIME, 3, 'HOUR')) AS DAY,
SUM(impressions) AS imps
FROM
[browser_traffic.2016_05_28],
[browser_traffic.2016_05_29]
WHERE
(DATE_ADD(TIME, 3, "HOUR") >= '2016-05-28 00:00:00'
AND DATE_ADD(TIME, 3, "HOUR") < '2016-05-30 00:00:00')
GROUP EACH BY ROLLUP (campaign_group_id, DAY)
ORDER BY DAY ASC, campaign_group_id ASC
LIMIT 500
BQ gibt viele Zeilen mit Zwischensummen, die nicht anwendbar in meinem Anwendungsfall ist:
+-------------------+------+-----------+
| campaign_group_id | day | imps |
+-------------------+------+-----------+
| NULL | NULL | 158423933 |
| 61 | NULL | 0 |
| 496 | NULL | 79870 |
| 497 | NULL | 10492 |
| 809 | NULL | 0 |
| 936 | NULL | 2451 |
| 937 | NULL | 0 |
| 940 | NULL | 6844 |
| 942 | NULL | 207685 |
| 946 | NULL | 0 |
| 961 | NULL | 0 |
| 975 | NULL | 16167 |
| 976 | NULL | 15767 |
| 1018 | NULL | 0 |
| 1020 | NULL | 0 |
| 1022 | NULL | 766875 |
| 1039 | NULL | 355765 |
...
ich muß irgendwie Wert Ihre Zeilen aus dem Ergebnis verringern, aber intakt Endsumme Reihe verlassen (die erste Zeile in obigem Ergebnis)
Ist es möglich, dass BQ nur die Gesamtzeile für ausgewählte Felder zurückgibt?
Danke @Michael - ich denke es ist genau das, was ich brauche! – Andrew
Ich habe heute den Vorschlag getestet, aber wenn ich mehr Gruppierungsspalten habe, enthält das Ergebnis auch Zwischensummenzeilen. Mehr Probleme werden vorhanden sein, wenn solche Spalten Nullable sind, die genau im Rahmen meiner Anwendungsfälle ist ... – Andrew
Verwenden Sie GROUPING(), blättern Sie für die vollständige Antwort –