MYSQL

这篇博客通过一系列 SQL 例题,展示了如何利用 MySQL 进行复杂的数据查询和分析,包括计算部门平均薪资、统计用户消费行为、分析用户回购与新用户性别比例、商品退款与投诉情况以及学生成绩评估等场景。
摘要由CSDN通过智能技术生成

第一题 有员工信息表employee,Name为员工姓名,salary为员工薪资,departmentid为员工所在部门id。以及部门表departmentid,对应employee表里面的departmentid,name为对应部门的名称。编写一个 SQL ,求出每个部门的平均薪资,

select d.name, avg(salary) 平均薪资
from employee e
join department d
on e.departmentid = d.id
group by departmentid

– 第二题.有表spendingUser_id为用户id,spend_date为用户消费日期,platform为渠道来源,amout为消费的金额。写一段SQL来查找每天每个渠道的用户人数以及消费金额,渠道包括仅使用移动端用户(mobile)、仅使用电脑端用户(desktop)和同时使用电脑端和移动端(both)的人数和消费金额。

with cte1 as(
	select user_id, spend_date, count(1) 总渠道数
	from spending s
	group by user_id, spend_date)
select 
	s.spend_date,
	if(总渠道数>=2, "both", platform) 渠道, 
	count(distinct s.user_id) 人数,  
	sum(amount) 消费金额
from spending s
join cte1 c
on s.user_id = c.user_id and s.spend_date = c.spend_date
group by 渠道, s.spend_date

– 第三题,3.有3-4月订单明细表orderinfo,orderid为订单id,userid为用户id,isPaid记录了用户是否付款,price为商品价格,paidTime为用户付款时间。以及有用户信息表userinfo,userid为用户id,sex为用户性别,birth为用户出生日期。观察数据集,编写一条SQL语句:1查询统计4月的回购人数(3月购买过,4月又购买的用户)中,男性、女性、未知性别的用户数占比2以及4月新用户(未在3月购买,4月第一次购买的用户)中,男性、女性、未知性别的用户数占比。

with c1 as(
	select distinct userid, month(paidtime) mon
	from orderinfo
),
c3 as(
	select userid, "3月" `3月`
	from c1
	where mon = 3),
c4 as(
	select userid, "4月" `4月`
	from c1
	where mon = 4)
select 
case
	when `3月` is not null and `4月` is not null then "回购用户"
	when `3月` is null and `4月` is not null then "新用户"
end 用户标签,
count(if(u.sex="男", 1, null))/count(1) 男性占比,
count(if(u.sex="女", 1, null))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值