Delen via


window groeperingsexpressie

Van toepassing op: vinkje als ja aan Databricks SQL vinkje als ja aan Databricks Runtime

Hiermee maakt u een schuifvenster op basis van een hopping over een tijdstempelexpressie.

Syntaxis

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

Argumenten

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

Retouren

Hiermee wordt een set groeperingen geretourneerd waarop statistische functies kunnen worden uitgevoerd. De GROUP BY kolomnaam 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. slide Standaard is dit gelijk aan, width dus expr worden gepartitioneerd in groepen. De vensters beginnen bij 1970-01-01 00:00:00 UTC + start. De standaardwaarde 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