题目:现在运营想要对每个学校不同性别的用户活跃情况和发帖数量进行分析,请分别计算出每个学校每种性别的用户数、30天内平均活跃天数和平均发帖数量。
用户信息表:user_profile
30天内活跃天数字段(active_days_within_30)
发帖数量字段(question_cnt)
回答数量字段(answer_cnt)
你的查询返回结果需要对性别和学校分组,示例如下:
SELECT gender,university,COUNT(device_id) as user_num ,avg(active_days_within_30),avg(question_cnt)AS avg_question_cntFROM user_profileGROUP BY gender,university
题目:现在运营想查看每个学校用户的平均发贴和回帖情况,寻找低活跃度学校进行重点运营,请取出平均发贴数低于5的学校或平均回帖数小于20的学校。
示例:user_profile
根据示例,你的查询应返回以下结果:
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或平均回帖数小于20的学校,
avg(question_cnt)<5 or avg(answer_cnt)<20,聚合函数结果作为筛选条件时,不能用where,而是用having语法,配合重命名即可; - 按学校输出:需要对每个学校统计其平均发贴数和平均回帖数,因此
group by university 表头重命名:as用having不用where
描述
题目:现在运营想要查看不同大学的用户平均发帖情况,并期望结果按照平均发帖情况进行升序排列,请你取出相应数据。
示例:user_profile
根据示例,你的查询应返回以下结果:
需要搞清楚GROUP BY 和 ORDER BY 的先后顺序
SELECT university,AVG(question_cnt) AS avg_question_cnt
FROM user_profile
GROUP BY university
ORDER BY avg_question_cnt
描述
SQL21 浙江大学用户题目回答情况
题目:现在运营想要查看所有来自浙江大学的用户题目回答明细情况,请你取出相应数据
https://www.nowcoder.com/practice/55f3d94c3f4d47b69833b335867c06c1?tpId=199&tqId=1975673&ru=/ta/sql-quick-study&qru=/ta/sql-quick-study/question-ranking
select qpd.device_id,qpd.question_id,qpd.result
FROM question_practice_detail AS qpd
INNER JOIN user_profile AS up
ON up.device_id = qpd.device_id and up.university="浙江大学"
