-- 方式一
-- 使用判断获取top3的最小值
select case when countNum = 1 then (select order_amount from test.test04 group by order_amount order by order_amount desc limit 1)
when countNum = 2 then (select order_amount from test.test04 group by order_amount order by order_amount desc limit 1,1)
when countNum >=3 then (select order_amount from test.test04 group by order_amount order by order_amount desc limit 2,1)
end as order_amount1
from (
select count(*) as countNum
from ( select shengfen,order_amount
from test.test04 t1
group by order_amount
order by order_amount desc
) t1
) t2
;
-- 方式二
-- 第一次使用倒序排序取前3
-- 第二次使用正序排序取第一,从而获取前三中的最小的值
select order_amount
from (
select *
from test.test02
group by order_amount
order by order_amount desc
limit 3
) t1
order by order_amount
limit 1
;