window
gruplandırma ifadesi
Şunun için geçerlidir: Databricks SQL denetimi yes Databricks Runtime
Zaman damgası ifadesi üzerinde atlama tabanlı kayan pencere oluşturur.
Sözdizimi
window(expr, width [, slide [, start] ] )
Bağımsız değişken
expr
: Pencerenin konusunu belirten TIMESTAMP ifadesi.width
: Pencerenin genişliğini INTERVAL DAY TO SECOND değişmez değeri olarak temsil eden STRING değişmez değeri.start
: Interval DAY TO SECOND değişmez değeri olarak ifade edilen bir sonraki pencerenin başlangıcını temsil eden isteğe bağlı bir STRING değişmez değeri.slide
: Gece yarısından başlamaya kadar olan uzaklığı temsil eden isteğe bağlı STRING değişmez değeri, INTERVAL HOUR TO SECOND değişmez değeri olarak ifade edilir.
Döndürür
Toplama işlevleriyle çalıştırılabilir bir gruplama döndürür.
GROUP BY sütun adı şeklindedir window
. Bu tür STRUCT<start:TIMESTAMP, end:TIMESTAMP>
slide
değerinden küçük veya eşit width
olmalıdır.
start
değerinden slide
küçük olmalıdır.
Her gruptaki satırlar çakışıyorsa slide
<width
.
Varsayılan olarak slide
eşittir width
, bu nedenle expr
gruplara ayrılır.
Pencereleme konumunda 1970-01-01 00:00:00 UTC + start
başlar. için start
varsayılan değer : '0 SECONDS'
'
Örnekler
> 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