w3resource

PostgreSQL Subquery: Get three maximum salaries


19. Write a query to get three maximum salaries.

Sample Solution:

Code:

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


Output:

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)

Practice Online


Have another way to solve this solution? Contribute your code (and comments) through Disqus.

What is the difficulty level of this exercise?



New Content: Composer: Dependency manager for PHP, R Programming