欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 房产 > 家装 > SQL语句练习每日5题(四)

SQL语句练习每日5题(四)

2024/10/24 9:29:47 来源:https://blog.csdn.net/weixin_39355323/article/details/139515637  浏览:    关键词:SQL语句练习每日5题(四)

题目1——查找GPA最高值

想要知道复旦大学学生gpa最高值是多少,请你取出相应数据

题解:

1、使用MAX

select MAX(gpa) FROM user_profile WHERE university = '复旦大学'

2、使用降序排序组合limit

select gpa FROM user_profile WHERE university = '复旦大学' order by gpa desc limit 1

题目2——计算男生人数以及平均GPA

想要看一下男性用户有多少人以及他们的平均gpa是多少,用以辅助设计相关活动,请你取出相应数据

题解:

按照要求进行条件分解:

限定条件为 男性用户;
有多少人,明显是计数,count函数;
平均gpa,求平均值用avg函数;
细节问题:根据输出示例,有两个问题需要注意:
表头重命名,用as语法
浮点数的平均值可能小数点位数很多,按照示例保存一位小数,用round函数

select  count(gender) as male_num,round(avg(gpa),1) as avg_gpa

from user_profile

where gender="male"

题目3——分组计算练习题

想要对每个学校不同性别的用户活跃情况和发帖数量进行分析,请分别计算出每个学校每种性别的用户数、30天内平均活跃天数和平均发帖数量

题解:先进行条件分解

限定条件:无;
每个学校每种性别:按学校和性别分组:group by gender, university
用户数:count(device_id)
30天内平均活跃天数:avg(active_days_within_30)
平均发帖数量:avg(question_cnt)

select

gender,university,

count(device_id) as user_num,

avg(active_days_within_30) as avg_active_day,

avg(question_cnt) as avg_question_cnt

from user_profile

group by gender,university

题目4——分组过滤练习题

想查看每个学校用户的平均发贴和回帖情况,寻找低活跃度学校进行重点运营,请取出平均发贴数低于5的学校或平均回帖数小于20的学校。

题解:

having筛选,having常用于对分组结果进行筛选。
这里不能使用where的原因是 where的执行顺序早于group by,所以where 也不可以使用 列的别名。而having可以,执行顺序如下:

答案:

select

university,

avg(question_cnt) as avg_question_cnt,

avg(answer_cnt) as avg_answer_cnt

from user_profile

group by university

Having avg(question_cnt)<5 or avg(answer_cnt)<20

题目5——分组排序练习题

想要查看不同大学的用户平均发帖情况,并期望结果按照平均发帖情况进行升序排列,请你取出相应数据。

题解:

select university,avg(question_cnt) as avg_question_cnt

from user_profile

group by university

order by avg_question_cnt

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com