每日一SQL 【各赛事的用户注册率】
文章目录
- 问题
- 案例
- 执行顺序
- 使用分组解决
问题
案例
执行顺序
select,from,where,group by,order by,having, limit执行顺序
使用分组解决
select r.contest_id,round(count(r.contest_id) * 100 / (select count(*) from Users), 2) as percentage
from Register r
group by r.contest_id
order by percentage desc, r.contest_id asc;
解释:
group by 按列分组,为聚合函数提供依据;
having 对分组后的数据过滤, 筛选出符合条件的分组。
select 从结果集中选择列,计算表达式和聚合函数。