window
espressione di raggruppamento
Si applica a: controllo SQL databricks Databricks Runtime
Crea una finestra scorrevole basata su salti su un'espressione timestamp.
Sintassi
window(expr, width [, slide [, start] ] )
Argomenti
expr
: espressione TIMESTAMP che specifica l'oggetto della finestra.width
: valore letterale STRING che rappresenta la larghezza della finestra come valore letterale INTERVAL DAY TO SECOND.start
: valore letterale STRING facoltativo che rappresenta l'inizio della finestra successiva espressa come valore letterale INTERVAL DAY TO SECOND.slide
: valore letterale STRING facoltativo che rappresenta un offset dalla mezzanotte all'inizio, espresso come valore letterale INTERVAL HOUR TO SECOND.
Restituisce
Restituisce un set di raggruppamenti che possono essere gestiti con funzioni di aggregazione.
Il nome della colonna GROUP BY è window
. È di tipo STRUCT<start:TIMESTAMP, end:TIMESTAMP>
slide
deve essere minore o uguale a width
.
start
deve essere minore di slide
.
Se slide
<width
le righe in ogni gruppo si sovrappongono.
Per impostazione predefinita slide
, i width
expr
valori sono partizionati in gruppi.
La finestra inizia a 1970-01-01 00:00:00 UTC + start
. Il valore predefinito per start
è '0 SECONDS'
'
Esempi
> SELECT window, min(val), max(val), count(val)
FROM VALUES (TIMESTAMP'2020-08-01 12:20:21', 17),
(TIMESTAMP'2020-08-01 12:20:22', 12),
(TIMESTAMP'2020-08-01 12:23:10', 8),
(TIMESTAMP'2020-08-01 12:25:05', 11),
(TIMESTAMP'2020-08-01 12:28:59', 15),
(TIMESTAMP'2020-08-01 12:30:01', 23),
(TIMESTAMP'2020-08-01 12:30:15', 2),
(TIMESTAMP'2020-08-01 12:35:22', 16) AS S(stamp, val)
GROUP BY window(stamp, '2 MINUTES 30 SECONDS', '30 SECONDS', '15 SECONDS');
{2020-08-01 12:19:15, 2020-08-01 12:21:45} 12 17 2
{2020-08-01 12:18:15, 2020-08-01 12:20:45} 12 17 2
{2020-08-01 12:20:15, 2020-08-01 12:22:45} 12 17 2
{2020-08-01 12:19:45, 2020-08-01 12:22:15} 12 17 2
{2020-08-01 12:18:45, 2020-08-01 12:21:15} 12 17 2
{2020-08-01 12:21:45, 2020-08-01 12:24:15} 8 8 1
{2020-08-01 12:22:45, 2020-08-01 12:25:15} 8 11 2
{2020-08-01 12:21:15, 2020-08-01 12:23:45} 8 8 1
{2020-08-01 12:22:15, 2020-08-01 12:24:45} 8 8 1
{2020-08-01 12:20:45, 2020-08-01 12:23:15} 8 8 1
{2020-08-01 12:23:45, 2020-08-01 12:26:15} 11 11 1
{2020-08-01 12:23:15, 2020-08-01 12:25:45} 11 11 1
{2020-08-01 12:24:45, 2020-08-01 12:27:15} 11 11 1
{2020-08-01 12:24:15, 2020-08-01 12:26:45} 11 11 1
{2020-08-01 12:27:15, 2020-08-01 12:29:45} 15 15 1
{2020-08-01 12:27:45, 2020-08-01 12:30:15} 15 23 2
{2020-08-01 12:28:45, 2020-08-01 12:31:15} 2 23 3
{2020-08-01 12:26:45, 2020-08-01 12:29:15} 15 15 1
{2020-08-01 12:28:15, 2020-08-01 12:30:45} 2 23 3
{2020-08-01 12:29:45, 2020-08-01 12:32:15} 2 23 2