PostgreSQL Subquery: Get three maximum salaries
19. Write a query to get three maximum salaries.
SELECT DISTINCT salary FROM employees a WHERE 3 >= (SELECT COUNT(DISTINCT salary) FROM employees b WHERE a.salary <= b.salary) ORDER BY a.salary DESC;
Sample table: employees
pg_exercises=# SELECT DISTINCT salary pg_exercises-# FROM employees a pg_exercises-# WHERE 3 >= (SELECT COUNT(DISTINCT salary) pg_exercises(# FROM employees b pg_exercises(# WHERE a.salary <= b.salary) pg_exercises-# ORDER BY a.salary DESC; salary ---------- 24030.00 17030.00 14030.00 (3 rows)
Have another way to solve this solution? Contribute your code (and comments) through Disqus.
What is the difficulty level of this exercise?