with temp as (
select
'5-6级' as level_cut,
count(*) as num
from
answer_tb a left join author_tb u on a.author_id = u.author_id
where
char_len >= 100
and author_level in (5,6)
union
select
'3-4级' as level_cut,
count(*) as num
from
answer_tb a left join author_tb u on a.author_id = u.author_id
where
char_len >= 100
and author_level in (3,4)
union
select
'1-2级' as level_cut,
count(*) as num
from
answer_tb a left join author_tb u on a.author_id = u.author_id
where
char_len >= 100
and author_level in (1,2)
)
select
*
from
temp
where
num != 0
order by
num desc,level_cut asc