Share via


window espressione di raggruppamento

Si applica a:check contrassegnato sì controllo SQL databricks contrassegnato come sì 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 widthexpr 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