max min 或者叠加order by xx desc
 

第n个:

用到order by

limit 起始位置,取得数据条数 一定记得不加括号!
比如第二名 limit 1,1 从第一个开始,取一个。默认从第零个开始
 
不用order by
第二个:
max(xxx) where xxx not in(<) (select max(xxx))
筛掉max之后的max就是第二了
 
通用型模板
 
使用一个表自连接,选出所有大于他的然后进行分组,第二多就是说 一共有一个大于它。由于可能同一个工资有多个纪录,加一个去重distinct
第n多就是有n-1个大于它
select e.emp_no,s.salary,e.last_name,e.first_name
from
employees e
join 
salaries s on e.emp_no=s.emp_no 
and s.to_date='9999-01-01'
and s.salary = 
(
     select s1.salary
     from 
     salaries s1
     join
     salaries s2 on s1.salary<s2.salary 
     and s1.to_date='9999-01-01' and s2.to_date='9999-01-01'
     group by s1.salary
     having count(distinct s2.salary)=1
 )

 

 

相关文章:

  • 2022-12-23
  • 2021-06-05
  • 2022-02-26
  • 2022-12-23
  • 2021-09-07
  • 2021-07-22
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2021-09-05
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案