题解 | #分组计算练习题#
分组计算练习题
https://www.nowcoder.com/practice/009d8067d2df47fea429afe2e7b9de45
select gender, university, count(device_id) as user_num, round(avg(active_days_within_30),1) as avg_active_day, round(avg(question_cnt),1) as avg_question_cnt from user_profile group by gender,university
- 条件:无;
- 每个学校每种性别:
先按学校分组,之后再按性别分组 ;顺序不能倒过来,倒过来就变成了先按性别分好组之后,再按学校分组了,所以应该是:group by gender university,gender;之后不用再用having了
- 用户数:
使用聚合函数count(id),id是唯一标识,应该使用id,虽然使用其他结果没有错,但是在实际项目开发中的大量数据下,会发生误差。
- 30天内平均活跃天数:
使用聚合函数avg(active_days_within_30)
- 平均发帖数量: 使用聚合函数avg(question_cnt)
tips:分组字段不能是聚合函数;
sql练习 文章被收录于专栏
记录练习过程