-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathWindowFunctions.sql
74 lines (51 loc) · 1.41 KB
/
WindowFunctions.sql
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
-- Window Functions
SELECT
gender,
first_name,
AVG(age) OVER(PARTITION BY gender ORDER BY first_name)
FROM
parks_and_recreation.employee_demographics
;
SELECT
CONCAT(DEM.first_name, ' ', DEM.last_name),
DEM.gender,
SUM(SAL.salary) OVER(PARTITION BY DEM.gender) AS TOTAL_SALARY,
SUM(SAL.salary) OVER(PARTITION BY DEM.gender ORDER BY DEM.employee_id) AS ROLLING_TOTAL,
ROW_NUMBER() OVER(),
ROW_NUMBER() OVER(PARTITION BY DEM.gender),
ROW_NUMBER() OVER(PARTITION BY DEM.gender ORDER BY salary DESC)
FROM
parks_and_recreation.employee_demographics AS DEM
INNER JOIN
parks_and_recreation.employee_salary AS SAL
ON DEM.employee_id = SAL.employee_id
;
SELECT
first_name,
last_name,
gender,
ROW_NUMBER() OVER(PARTITION BY gender),
ROW_NUMBER() OVER(ORDER BY age DESC),
ROW_NUMBER() OVER(PARTITION BY gender ORDER BY age DESC),
RANK() OVER(PARTITION BY gender ORDER BY age DESC),
RANK() OVER(ORDER BY age DESC),
DENSE_RANK() OVER(PARTITION BY gender ORDER BY age DESC)
FROM
parks_and_recreation.employee_demographics
;
SELECT *
FROM
parks_and_recreation.employee_demographics;
SELECT *
FROM
parks_and_recreation.employee_salary
;
SELECT
CONCAT(first_name, ' ', last_name),
salary,
ROW_NUMBER() OVER(ORDER BY salary DESC),
RANK() OVER(ORDER BY salary DESC),
DENSE_RANK() OVER(ORDER BY salary DESC)
FROM
parks_and_recreation.employee_salary
;