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