【MYSQL例题】

1、【出处:牛客网】题目:运营想要了解每个学校答过题的用户平均答题数量情况,请取出数据

用户信息表 user_profile:其中device_id指终端编号(认为每个用户有唯一的一个终端),gender指性别,age指年龄,university指用户所在的学校,gpa是该用户平均学分绩点,active_days_within_30是30天内的活跃天数

答题情况明细表 question_practice_detail:其中question_id是题目编号,result是答题结果

解:

2、【出处:牛客网】题目:运营想要计算每个学校用户不同难度下的用户平均答题题目数情况,请你取出相应数据

用户信息表 user_profile:

题库练习明细表 question_practice_detail:

题目难度表:question_detail

解:

实际输出:

北京大学|hard|1.0000
复旦大学|easy|1.0000
复旦大学|medium|1.0000
山东大学|easy|4.5000
山东大学|medium|3.0000
浙江大学|easy|5.0000
浙江大学|medium|2.0000

3、【出处:牛客网】题目:现在运营想要分别查看学校为山东大学或者性别为男性的用户的device_id、gender、age和gpa数据,请取出相应结果,结果不去重

user_profile 表:

解:

实际输出:

5432|male|25|3.8
2131|male|28|3.3
2138|male|21|3.4
3214|male|None|4.0
5432|male|25|3.8
2131|male|28|3.3
4321|male|28|3.6

扩展:如果是要求结果去重,则应该为:

实际输出:

5432|male|25|3.8
2131|male|28|3.3
2138|male|21|3.4
3214|male|None|4.0
4321|male|28|3.6

4、【出处:牛客网】题目:现在运营想要将用户划分为25岁以下和25岁及以上两个年龄段,分别查看这两个年龄段用户数量(注:age为null 也记为 25岁以下)

user_profile 表:

解法1:使用 union

解法2:使用 IF 函数

解法3:使用 CASE

实际输出:

25岁以下|4
25岁及以上|3

5、【出处:牛客网】题目:现在运营想要将用户划分为20岁以下,20-24岁,25岁及以上三个年龄段,分别查看不同年龄段用户的明细情况,请取出相应数据。(注:若年龄为空请返回其他)

user_profile 表:

解:

实际输出:

2138|male|20-24岁
3214|male|其他
6543|female|20-24岁
2315|female|20-24岁
5432|male|25岁及以上
2131|male|25岁及以上
4321|male|25岁及以上

6、【出处:牛客网】题目:现在运营想要计算出2021年8月每天用户练习题目的数量,请取出相应数据

question_practice_detail 表:

解:

其中的 WHERE 条件还可以写成如下:

或者如下:

实际输出:

13|5
14|2
15|3
16|1
18|1

 

posted @ 2022-11-16 11:37  夏圈圈儿  阅读(89)  评论(0编辑  收藏  举报