WINDOW-Klausel
Gilt für: Databricks SQL Databricks Runtime
Mit der window-Klausel können Sie eine oder mehrere unterschiedliche Fensterspezifikationen einmal definieren und benennen und anschließend für viele Fensterfunktionen innerhalb derselben Abfrage freigeben.
Syntax
WINDOW { window_name AS window_spec } [, ...]
Parameter
window_name
Ein Bezeichner, mit dem auf die Fensterspezifikation verwiesen werden kann. Der Bezeichner muss innerhalb der WINDOW-Klausel eindeutig sein.
window_spec
Eine Fensterspezifikation, die für eine oder mehrere Fensterfunktionen freigegeben werden soll.
Beispiele
> CREATE TABLE employees
(name STRING, dept STRING, salary INT, age INT);
> INSERT INTO employees
VALUES ('Lisa', 'Sales', 10000, 35),
('Evan', 'Sales', 32000, 38),
('Fred', 'Engineering', 21000, 28),
('Alex', 'Sales', 30000, 33),
('Tom', 'Engineering', 23000, 33),
('Jane', 'Marketing', 29000, 28),
('Jeff', 'Marketing', 35000, 38),
('Paul', 'Engineering', 29000, 23),
('Chloe', 'Engineering', 23000, 25);
> SELECT round(avg(age) OVER win, 1) AS salary,
round(avg(salary) OVER win, 1) AS avgsalary,
min(salary) OVER win AS minsalary,
max(salary) OVER win AS maxsalary,
count(1) OVER win AS numEmps
FROM employees
WINDOW win AS (ORDER BY age
ROWS BETWEEN 2 PRECEDING AND 2 FOLLOWING);
25.3 27000.0 23000 29000 3
26.0 25500.0 21000 29000 4
27.4 25000.0 21000 29000 5
29.4 25200.0 21000 30000 5
31.4 22600.0 10000 30000 5
33.4 23800.0 10000 35000 5
35.4 26000.0 10000 35000 5
36.0 26750.0 10000 35000 4
37.0 25666.7 10000 35000 3