window
groeperingsexpressie
Van toepassing op: Databricks SQL Databricks Runtime
Hiermee maakt u een schuifvenster op basis van een hopping over een tijdstempelexpressie.
Syntaxis
window(expr, width [, slide [, start] ] )
Argumenten
expr
: EenTIMESTAMP
expressie die het onderwerp van het venster aangeeft.width
: EenSTRING
letterlijke waarde die de breedte van het venster aangeeft als eenINTERVAL DAY TO SECOND
letterlijke waarde.slide
: Een optionele letterlijkeSTRING
waarde die een verschuiving vertegenwoordigt van middernacht tot begin, uitgedrukt als eenINTERVAL HOUR TO SECOND
letterlijke waarde.start
: Een optionele letterlijkeSTRING
waarde die het begin van het volgende venster weergeeft, uitgedrukt als eenINTERVAL 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