Skip to content

Commit fef4a9e

Browse files
committed
over() and over(partition by xyz)
1 parent d250db8 commit fef4a9e

1 file changed

Lines changed: 64 additions & 0 deletions

File tree

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
-- VIEW ALL RECORDS
2+
SELECT * FROM employees;
3+
4+
-- MIN and MAX salary from the employees table
5+
SELECT
6+
AVG(salary) AS avg_salary,
7+
MIN(salary) AS min_salary,
8+
MAX(salary) AS max_salary
9+
FROM employees;
10+
11+
-- SHOW EMPLOYEE DETAILS ALONG WITH OVERALL AVERAGE SALARY USING WINDOW FUNCTION
12+
SELECT
13+
emp_no,
14+
department,
15+
salary,
16+
AVG(salary) OVER() AS avg_salary
17+
FROM employees;
18+
19+
-- AGGREGATE MIN AND MAX SALARIES (WITHOUT WINDOW FUNCTION) - RESULTS IN SINGLE ROW PER GROUP (IF GROUPED)
20+
-- results in EXCEPTION if not grouped
21+
-- SELECT
22+
-- emp_no,
23+
-- department,
24+
-- salary,
25+
-- MIN(salary) AS min_salary,
26+
-- MAX(salary) AS max_salary
27+
-- FROM employees;
28+
29+
-- AGGREGATE MIN AND MAX SALARIES (WITHOUT WINDOW FUNCTION) - RESULTS IN SINGLE ROW PER GROUP (IF GROUPED)
30+
SELECT
31+
department,
32+
AVG(salary) AS avg_salary,
33+
MIN(salary) AS min_salary,
34+
MAX(salary) AS max_salary
35+
FROM employees
36+
GROUP BY department;
37+
38+
-- SHOW EMPLOYEE DETAILS ALONG WITH MIN AND MAX SALARIES ACROSS ALL ROWS
39+
SELECT
40+
emp_no,
41+
department,
42+
salary,
43+
MIN(salary) OVER() AS min_salary,
44+
MAX(salary) OVER() AS max_salary
45+
FROM employees;
46+
47+
-- SHOW EMPLOYEE DETAILS ALONG WITH MIN AND MAX SALARIES PER DEPARTMENT
48+
SELECT
49+
emp_no,
50+
department,
51+
salary,
52+
AVG(salary) OVER(PARTITION BY department) AS dep_avg_salary,
53+
MIN(salary) OVER(PARTITION BY department) AS dep_min_salary,
54+
MAX(salary) OVER(PARTITION BY department) AS dep_max_salary
55+
FROM employees;
56+
57+
-- SHOW EMPLOYEE DETAILS ALONG WITH MIN AND MAX SALARIES PER DEPARTMENT
58+
SELECT
59+
emp_no,
60+
department,
61+
salary,
62+
SUM(salary) OVER(PARTITION BY department) AS dept_payroll,
63+
SUM(salary) OVER() AS total_payroll
64+
FROM employees;

0 commit comments

Comments
 (0)