window
groeperingsexpressie
Van toepassing op: Databricks 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