每天几道SQL题(5)

这篇博客是作者在准备网易2020年数据分析师校招时的SQL练习,包括获取学生选课数量、计算新客数与复购率等实际问题。文章介绍了SQLite的触发器创建、数据删除、更新以及使用视图等操作,并提供了相关SQL语句示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

网易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

在这里插入图片描述
复购情况

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值