user_profile表:
id | device_id | gender | age | university | province | 1 | 2138 | male | 21 | 北京大学 | Beijing | 2 | 3214 | male | | 复旦大学 | Shanghai | 3 | 6543 | female | 20 | 北京大学 | Beijing | 4 | 2315 | female | 23 | 浙江大学 | ZheJiang | 5 | 5432 | male | 25 | 山东大学 | Shandong | question_pratice_detail表:
id | device_id | question_id | result | date | 1 | 2138 | 111 | wrong | 2021-05-03 | 2 | 3214 | 112 | wrong | 2021-05-09 | 3 | 3214 | 113 | wrong | 2021-06-15 | 4 | 6543 | 111 | right | 2021-08-13 | 5 | 2315 | 115 | right | 2021-08-13 | 6 | 2315 | 116 | right | 2021-08-14 | 7 | 2315 | 117 | wrong | 2021-08-15 | question_detail表
question_id | difficult_level | 111 | hard | 112 | medium | 113 | easy | 115 | easy | 116 | medium | 117 | easy | 一、基础查询
SQL1 查询所有列
题目:现在运营想要查看用户信息表中所有的数据,请你取出相应结果- SELECT * FROM user_profile;
复制代码 SQL2 查询多列
题目:现在运营同学想要用户的设备id对应的性别、年龄和学校的数据,请你取出相应数据- SELECT gender,COUNT(*)
- FROM user_profile
- GROUP BY gender;
复制代码 SQL3 查询结果去重
题目:现在运营需要查看用户来自于哪些学校,请从用户信息表中取出学校的去重数据。- SELECT DISTINCT university
- FROM user_profile;
复制代码 SQL4 查询结果限制返回行数
现在运营只需要查看前2个用户明细设备ID数据,请你从用户信息表 user_profile 中取出相应结果。- SELECT device_id FROM user_profile
- LIMIT 2;
复制代码 SQL5 将查询后的列重新命名
题目:现在你需要查看前2个用户明细设备ID数据,并将列名改为 'user_infos_example',,请你从用户信息表取出相应结果。- SELECT device_id AS user_infors_example
- FROM user_profile
- LIMIT 2;
复制代码 二、条件查询
SQL6 查找学校是北大的学生信息
题目:现在运营想要筛选出所有北京大学的学生进行用户调研,请你从用户信息表中取出满足条件的数据,结果返回设备id和学校。- SELECT device_id,university
- FROM user_profile
- HAVING university='北京大学';
复制代码 SQL7 查找年龄大于24岁的用户信息
题目:现在运营想要针对24岁以上的用户开展分析,请你取出满足条件的设备ID、性别、年龄、学校。- SELECT device_id,gender,age,university
- FROM user_profile
- WHERE age>24;
复制代码 SQL8 查找某个年龄段的用户信息
题目:现在运营想要针对20岁及以上且23岁及以下的用户开展分析,请你取出满足条件的设备ID、性别、年龄。- SELECT device_id,gender,age
- FROM user_profile
- WHERE age>=20 AND age<=23
复制代码 SQL12 高级操作符练习(2)
题目:现在运营想要找到学校为北大或GPA在3.7以上(不包括3.7)的用户进行调研,请你取出相关数据(使用OR实现)- SELECT device_id,gender,age,university
- FROM user_profile
- WHERE university !='复旦大学'
复制代码 SQL13 Where in 和Not in
题目:现在运营想要找到学校为北大、复旦和山大的同学进行调研,请你取出相关数据。- SELECT device_id,gender,age,university
- FROM user_profile
- WHERE age is NOT NULL;
复制代码 SQL14 操作符混合运用
题目:现在运营想要找到gpa在3.5以上(不包括3.5)的山东大学用户 或 gpa在3.8以上(不包括3.8)的复旦大学同学进行用户调研,请你取出相应数据- SELECT device_id,gender,age,university,gpa
- FROM user_profile
- WHERE gender='male' AND gpa>3.5;
复制代码 SQL15 查看学校名称中含北京的用户
题目:现在运营想查看所有大学中带有北京的用户的信息,请你取出相应数据。- SELECT device_id,gender,age,university,gpa
- FROM user_profile
- WHERE university='北京大学' OR gpa>3.7
复制代码 SQL36 查找后排序
题目:现在运营想要取出用户信息表中的用户年龄,请取出相应数据,并按照年龄升序排序。 - SELECT device_id,gender,age,university,gpa
- FROM user_profile
- WHERE university IN ('北京大学','复旦大学','山东大学')
复制代码 SQL37 查找后多列排序
题目:现在运营想要取出用户信息表中的年龄和gpa数据,并先按照gpa升序排序,再按照年龄升序排序输出,请取出相应数据。- SELECT device_id,gender,age,university,gpa
- FROM user_profile
- WHERE (gpa>3.5 AND university='山东大学') OR (gpa>3.8 AND university='复旦大学')
复制代码 SQL38 查找后降序排列
题目:现在运营想要取出用户信息表中对应的数据,并先按照gpa、年龄降序排序输出,请取出相应数据。- SELECT device_id,age,university
- FROM user_profile
- WHERE university LIKE '%北京%';
复制代码
三、高级查询
SQL16 查找GPA最高值
题目:运营想要知道复旦大学学生gpa最高值是多少,请你取出相应数据- select device_id,age
- from user_profile
- order by age;
复制代码 SQL17 计算男生人数以及平均GPA
题目:现在运营想要看一下男性用户有多少人以及他们的平均gpa是多少,用以辅助设计相关活动,请你取出相应数据。- select device_id,gpa,age
- from user_profile
- order by gpa,age;
复制代码 SQL18 分组计算练习题
题目:现在运营想要对每个学校不同性别的用户活跃情况和发帖数量进行分析,请分别计算出每个学校每种性别的用户数、30天内平均活跃天数和平均发帖数量。用户信息表:user_profile30天内活跃天数字段(active_days_within_30)发帖数量字段(question_cnt)回答数量字段(answer_cnt)- select device_id,gpa,age
- from user_profile
- order by gpa desc,age desc;
复制代码 SQL19 分组过滤练习题
题目:现在运营想查看每个学校用户的平均发贴和回帖情况,寻找低活跃度学校进行重点运营,请取出平均发贴数低于5的学校或平均回帖数小于20的学校。
[code]SELECT university,AVG(question_cnt) AS avg_question_cnt,AVG(answer_cnt) AS avg_answer_cntFROM user_profileGROUP BY universityHAVING avg_question_cnt='2021-08-01' and date='2021-08-01 00:00:00' and date |