-
Notifications
You must be signed in to change notification settings - Fork 10
Expand file tree
/
Copy path1468. Calculate Salaries.sql
More file actions
43 lines (40 loc) · 974 Bytes
/
Copy path1468. Calculate Salaries.sql
File metadata and controls
43 lines (40 loc) · 974 Bytes
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
# With CTE and JOIN
WITH company_category AS(
SELECT
company_id,
CASE
WHEN MAX(salary) < 1000 THEN 0
WHEN MAX(salary) BETWEEN 1000 AND 10000 THEN 24
ELSE 49
END AS tax
FROM salaries
GROUP BY company_id
)
SELECT
s.company_id,
s.employee_id,
s.employee_name,
ROUND(
s.salary - (s.salary * (cc.tax / 100))
) AS salary
FROM salaries s
LEFT JOIN company_category cc ON s.company_id = cc.company_id;
# With CTE and WINDOW function
WITH company_category AS(
SELECT
*,
CASE
WHEN MAX(salary) OVER(PARTITION BY company_id) < 1000 THEN 0
WHEN MAX(salary) OVER(PARTITION BY company_id) BETWEEN 1000 AND 10000 THEN 24
ELSE 49
END AS tax
FROM salaries
)
SELECT
s.company_id,
s.employee_id,
s.employee_name,
ROUND(
s.salary - (s.salary * (s.tax / 100))
) AS salary
FROM company_category s;