Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- SELECT worker_surname, salary, count(*) over (partition by department_code
- order by salary desc) cnt
- FROM listworker
- WHERE salary BETWEEN (SELECT DISTINCT NTH_VALUE(salary,3)
- OVER ( ORDER BY salary DESC RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
- )
- AS "Third HIGHEST"
- FROM listworker) AND (SELECT DISTINCT NTH_VALUE(salary,1)
- OVER ( ORDER BY salary DESC RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
- )
- AS "First HIGHEST"
- FROM listworker)
- SELECT worker_surname, salary, case
- WHEN cnt = 4 THEN ''
- WHEN cnt = 2 AND salary = (LEAD (salary,1) over (ORDER BY salary)) THEN worker_surname
- ELSE worker_surname
- end
- FROM (SELECT worker_surname, salary, count(*) over (partition by department_code
- order by salary desc) cnt
- FROM listworker
- WHERE salary BETWEEN (SELECT DISTINCT NTH_VALUE(salary,3)
- OVER ( ORDER BY salary DESC RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
- )
- AS "Third HIGHEST"
- FROM listworker) AND (SELECT DISTINCT NTH_VALUE(salary,1)
- OVER ( ORDER BY salary DESC RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
- )
- AS "First HIGHEST"
- FROM listworker));
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement