مشاركة عبر


window تعبير التجميع

ينطبق على: وضع علامة Databricks SQL وضع علامة Databricks Runtime

إنشاء نافذة منزلقة مستندة إلى القفز عبر تعبير طابع زمني.

بناء الجملة

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

الوسيطات

  • exprTIMESTAMP: تعبير يحدد موضوع النافذة.
  • widthSTRING: قيمة حرفية تمثل عرض النافذة كحرفيةINTERVAL DAY TO SECOND.
  • slide: قيمة حرفية اختيارية STRING تمثل إزاحة من منتصف الليل إلى البداية، يتم التعبير عنها كحرفية INTERVAL HOUR TO SECOND .
  • start: قيمة حرفية اختيارية STRING تمثل بداية النافذة التالية التي يتم التعبير عنها كحرفية INTERVAL DAY TO SECOND .

المرتجعات

إرجاع مجموعة من التجميعات التي يمكن تشغيلها باستخدام دالات تجميعية. GROUP BY اسم العمود هو window. ومن نوع STRUCT<start TIMESTAMP, end TIMESTAMP>

slide يجب أن يكون أقل من أو يساوي width. start يجب أن يكون أقل من slide.

إذا slide<width تداخلت الصفوف في كل مجموعة. بشكل افتراضي slide يساوي width ذلك expr يتم تقسيمها إلى مجموعات. تبدأ النوافذ في 1970-01-01 00:00:00 UTC + start. الإعداد الافتراضي ل start هو '0 SECONDS''

الأمثلة

> 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