# Zeitfensterfunktionen

# tumble

Ein Tumbling-Zeitfenster weist Datensätzen nicht überlappende, kontinuierliche Fenster mit einer festen Dauer (interval) zu.

tumble(time_attr, interval [, timezone])

Argumente

  • time_attr - Datum und Uhrzeit. Datentyp DateTime.
  • interval - Fensterintervall im Datentyp Interval.
  • timezone — Zeitzone (optional).

Rückgabewerte

  • Der inklusive untere und exklusive obere Grenzwert des entsprechenden Tumbling-Fensters.
  • Typ: Tuple(DateTime, DateTime)

Beispiel

SELECT tumble(now(), toIntervalDay('1'))
┌─tumble(now(), toIntervalDay('1'))─────────────┐
│ ('2023-10-27 00:00:00','2023-10-28 00:00:00') │
└───────────────────────────────────────────────┘

# hop

Ein Hopping-Zeitfenster hat eine feste Dauer (window_interval) und springt in bestimmten Intervallen (hop_interval). Wenn das hop_interval kleiner als das window_interval ist, überlappen sich die Hopping-Fenster. Daher können Datensätze mehreren Fenstern zugeordnet werden.

hop(time_attr, hop_interval, window_interval [, timezone])

Argumente

  • time_attr - Datum und Uhrzeit. Datentyp DateTime.
  • hop_interval - Sprungintervall im Datentyp Interval. Sollte eine positive Zahl sein.
  • window_interval - Fensterintervall im Datentyp Interval. Sollte eine positive Zahl sein.
  • timezone — Zeitzone (optional).

Rückgabewerte

  • Der inklusive untere und exklusive obere Grenzwert des entsprechenden Hopping-Fensters. Da ein Datensatz mehreren Hopping-Fenstern zugeordnet werden kann, gibt die Funktion nur die Grenze des ersten Fensters zurück, wenn die Hop-Funktion ohne WINDOW VIEW verwendet wird.
  • Typ: Tuple(DateTime, DateTime)

Beispiel

SELECT hop(now(), INTERVAL '1' SECOND, INTERVAL '2' SECOND)
┌─hop(now(), toIntervalSecond('1'), toIntervalSecond('2'))──┐
│ ('2023-10-27 15:10:17','2023-10-27 15:10:19')             │
└───────────────────────────────────────────────────────────┘

# tumbleStart

Gibt den inklusiven unteren Grenzwert des entsprechenden Tumbling-Fensters zurück.

tumbleStart(bounds_tuple);
tumbleStart(time_attr, interval [, timezone]);

# tumbleEnd

Gibt den exklusiven oberen Grenzwert des entsprechenden Tumbling-Fensters zurück.

tumbleEnd(bounds_tuple);
tumbleEnd(time_attr, interval [, timezone]);

# hopStart

Gibt den inklusiven unteren Grenzwert des entsprechenden Hopping-Fensters zurück.

hopStart(bounds_tuple);
hopStart(time_attr, hop_interval, window_interval [, timezone]);

# hopEnd

Gibt den exklusiven oberen Grenzwert des entsprechenden Hopping-Fensters zurück.

hopEnd(bounds_tuple);
hopEnd(time_attr, hop_interval, window_interval [, timezone]);