【难度】:简单

【场景】:每个级别的用户数量

【分类】:分组查询、条件函数

分析思路

难点:

1.统计用户数量不是用户数,一个不去重,一个去重

(1)统计某乎问答高质量的回答中用户属于1-2级、3-4级、5-6级的数量分别是多少,按数量降序排列

注:进入是增加一个在线人数,出去是减少一个在线人数

  • [条件]:回答字数大于等于100字

  • [使用]:case when

最终结果

select 查询结果 [等级;用户数量]
from 从哪张表中查询数据 [创作者信息表;创作者回答情况表]
where 查询条件 [回答字数大于等于100字]
group by 分组条件 [等级]
order by 对查询结果排序 [用户数量];

求解代码

方法一

case when

select
    (case
        when author_level between 1 and 2 then '1-2级'
        when author_level between 3 and 4 then '3-4级'
        else '5-6级'
    end) as level_cut,
    count(author_id) as num
from author_tb
join answer_tb using(author_id)
where char_len >= 100
group by level_cut
order by num desc