You can consider the following query with correlated subqueries as clarifying your question
select ( select max(distinct e2.sal) from emp e2 where e1.sal <= e2.sal ) as max_salary,
       ( select min(distinct e2.sal) from emp e2 where e1.sal <= e2.sal ) as min_salary,
       ( select count(distinct sal)  from emp e2 where e1.sal <= e2.sal ) 
     as salaries_count
  from emp e1
 order by salaries_count;
MAX_SALARY  MIN_SALARY  SALARIES_COUNT
5000        5000        1
5000        3000        2
5000        3000        2
5000        2975        3
5000        2850        4
5000        2450        5
5000        1600        6
5000        1500        7
5000        1300        8
5000        1250        9
5000        1250        9
5000        1100       10
5000         950       11
5000         800       12
distinct number of salaries( reversely_exceeding_salaries"distinct number of salaries less than the max salary -> 5000" ) remaining less than the maximum salary raises as the salary decreases.
There are two salaries_count with count value two for ( select count(distinct sal)  from emp e2 where e1.sal <= e2.sal ) subquery which gives the second highest salary.