网易2020年校招-数据分析师
1)假设有选课表course_relation(student_id, course_id),其中student_id表示学号,course_id表示课程编号,如果小易现在想获取每个学生所选课程的个数信息?
select student_id,count(course_id)
from course_relation
group by student_id
2)在数据库中有一张用户交易表order,其中有userid(用户ID)、orderid(订单ID)、amount(订单金额)、paytime(支付时间),请写出对应的SQL语句,查出每个月的新客数(新客指在严选首次支付的用户),当月有复购的新客数,新客当月复购率(公式=当月有复购的新客数/月总新客数)
跟拼多多那个还蛮像的
新客数:方法两种,一是使用复表,两张表比较,二是用子查询,选出min(paytime),试一试
随便生成一个order表
##找出新客户id
select DISTINCT(o2.userid),o2.paytime
from `order` o2
where paytime =
(select min(paytime) from `order` o1 where o1.userid = o2.userid)
##计算新客数
select count(DISTINCT o2.userid) as newg,o2.paytime
from `order` o2
where paytime =
(select min(paytime) from `order` o1 where o1.userid = o2.userid)
group by o2.paytime
复购情况