Advertisement
Guest User

Untitled

a guest
Jun 17th, 2019
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.16 KB | None | 0 0
  1. SELECT worker_surname, salary, count(*) over (partition by department_code
  2. order by salary desc) cnt
  3. FROM listworker
  4. WHERE salary BETWEEN (SELECT DISTINCT NTH_VALUE(salary,3)
  5. OVER ( ORDER BY salary DESC RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
  6. )
  7. AS "Third HIGHEST"
  8. FROM listworker) AND (SELECT DISTINCT NTH_VALUE(salary,1)
  9. OVER ( ORDER BY salary DESC RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
  10. )
  11. AS "First HIGHEST"
  12. FROM listworker)
  13.  
  14. SELECT worker_surname, salary, case
  15. WHEN cnt = 4 THEN ''
  16. WHEN cnt = 2 AND salary = (LEAD (salary,1) over (ORDER BY salary)) THEN worker_surname
  17. ELSE worker_surname
  18. end
  19. FROM (SELECT worker_surname, salary, count(*) over (partition by department_code
  20. order by salary desc) cnt
  21. FROM listworker
  22. WHERE salary BETWEEN (SELECT DISTINCT NTH_VALUE(salary,3)
  23. OVER ( ORDER BY salary DESC RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
  24. )
  25. AS "Third HIGHEST"
  26. FROM listworker) AND (SELECT DISTINCT NTH_VALUE(salary,1)
  27. OVER ( ORDER BY salary DESC RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
  28. )
  29. AS "First HIGHEST"
  30. FROM listworker));
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement