题目一:查询在pc上投递的所有记录
题目要求:
表结构:
运行结果示例:
思路:
使用where子句进行条件匹配查询。
运行代码示例:
select * from deliver_record_detail where device = "pc"
题目二:查询投递最低最高薪资差别大于2的职位的投递用户user_id
题目要求:
牛客简历详细投递数据表`deliver_record_detail`如下,查询投递简历中最低薪资(min_salary)与最高薪资(max_salary)差别大于2的职位的投递用户user_id
表结构:
运行结果示例:
思路:
直接将判断条件写入where子句即可。
运行代码示例:
select user_id from deliver_record_detail
where max_salary - min_salary > 2
题目三:查询薪资信息不为空的职位投递记录
题目要求:
牛客简历详细投递数据表`deliver_record_detail`如下,请你查询薪资信息不为空的职位投递记录(即最高薪资与最低薪资不全为空)
表结构:
运行结果示例:
思路:
本题考察了对于空值的判断,注意判断一个字段内容是否为空要用is null,而不能使用等号。
运行代码示例:
select * from deliver_record_detail
where min_salary is not null or max_salary is not null
题目四:查询城市为北京的职位投递记录
题目要求:
牛客简历详细投递数据表`deliver_record_detail`
如下,请你查询城市为北京的职位投递记录
表结构:
运行结果示例:
思路:
本题考察了where子句的使用。注意题目中工作城市有“北京”和“北京市”两种情况,这两种情况都需要我们查询出来。
运行代码示例:
select * from deliver_record_detail
where job_city like '%北京%'
题目五:查询2022年毕业用户的刷题记录
题目要求:
现有牛客刷题记录数据表、用户信息表如下,请查询2022年毕业用户的刷题记录,查询返回结果名称和顺序为
user_id|question_type|device|pass_count|date
表结构:
运行结果示例:
思路:
我们需要首先在用户表中查询出有哪些用户是在2022年毕业的学生,再在刷题记录表中找到对应用户id的刷题记录。
运行代码示例:
select user_id,question_type,device,pass_count,date
from questions_pass_record
where user_id in (
select user_id from user_info where graduation_year = '2022'
)
题目六:查询2022年以来刷题用户的用user_id和毕业院校
题目要求:
现有牛客刷题记录数据表、用户信息表如下,对于2022年以来有刷题的用户,请查询他们的user_id和毕业院校,查询返回结果名称和顺序为
user_id|university
表结构:
运行结果示例:
思路:
本题和上一题原理类似,只不过本题主查询是在用户表中进行的,子查询是在刷题记录表中进行的,此外,在子查询中,我们还需要使用year()函数,来将日期中的年份拆解出来。对于年份的拆解,我们也可以用between and或者字符串截取函数实现。
运行代码示例:
select user_id,university
from user_info
where user_id in (
select user_id from questions_pass_record
where year(date) >= '2022'
)