window groeperingsexpressie

Van toepassing op:gemarkeerd met ja Databricks SQL-controle gemarkeerd als ja Databricks Runtime

Hiermee maakt u een op hopping gebaseerd schuifvenster over een tijdstempelexpressie.

Syntaxis

window(expr, width [, slide [, start] ] )

Argumenten

  • expr: een TIMESTAMP-expressie die het onderwerp van het venster aangeeft.
  • width: een letterlijke tekenreeks die de breedte van het venster aangeeft als een letterlijke waarde INTERVAL DAY TO SECOND.
  • start: Een optionele letterlijke tekenreeks die het begin van het volgende venster vertegenwoordigt, uitgedrukt als een letterlijke waarde INTERVAL DAY TO SECOND.
  • slide: Een optionele letterlijke tekenreeks die een verschuiving van middernacht tot begin vertegenwoordigt, uitgedrukt als een letterlijke letterlijke waarde INTERVAL UUR TOT SECONDE.

Retourneert

Retourneert een set groeperingen waarop bewerkingen kunnen worden uitgevoerd met statistische functies. De kolomnaam GROUP BY is window. Het is van het type STRUCT<start:TIMESTAMP, end:TIMESTAMP>

slide moet kleiner dan of gelijk zijn aan width. start moet kleiner zijn dan slide.

Als slide<width de rijen in elke groep elkaar overlappen. Standaard is slide gelijk aan width , dus expr zijn ze gepartitioneerd in groepen. De vensters beginnen bij 1970-01-01 00:00:00 UTC + start. De standaardwaarde voor start is '0 SECONDS''

Voorbeelden

> 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