Gibt es eine Möglichkeit, das Verhalten von FILTER (http://modern-sql.com/feature/filter) in Standard SQL BigQuery zu emulieren?Filterpartitionen im Fenster - Berechnung der Ereignisrezenz in BigQuery
Was ich brauchen würde, zu tun ist:
SELECT MAX(date) FILTER (WHERE event_happend = 1) OVER ( PARTITION BY user_id ORDER BY date ASC ROWS BETWEEN UNBOUNDED PRECEDING AND 1 PRECEDING ) FROM ...
Im Wesentlichen Ich brauche das jüngste Datum ein bestimmtes Ereignis zum Zeitpunkt der aktuellen Zeile vor aufgetreten auszuarbeiten. Spalte event_happened
nimmt Werte 0
und 1
und ich brauche das letzte Datum, an dem das Ereignis aufgetreten ist (event_happened = 1
) vor dem Datum der aktuellen Zeile.
Warum nicht RANGE anstelle von ROWS verwenden? Dann können Sie den Wert der aktuellen Zeile ausschließen. –
@ElliottBrossard Danke für Ihren Vorschlag - aber ich fürchte, ich verstehe nicht ganz, wie mir die Verwendung von RANGE helfen würde. Könnten Sie bitte erläutern? Ich fügte meiner Frage zur Klärung auch Folgendes hinzu: "Die Spalte event_happened nimmt die Werte 0 und 1 und ich brauche das letzte Datum, an dem das Ereignis aufgetreten ist. Event_happened = 1 vor dem Datum der aktuellen Zeile." – user3531907
@ElliottBrossard Ich aktualisierte auch den Namen der Datumsspalte in meiner Frage - meine erste Wahl dort war verwirrend – user3531907