MySQL实战项目

 

本文主要通过MySQL对数据库进行特定场景查询,

例如对用户留存,商品回购率和复购率的探索。

 

场景一:在一份销售表中,我们需要提取上一个月付款用户量最高的三天是哪三天?并查询昨天每个用户最后的付款订单ID和金额。

SELECT DATA_FORMAT(pay_time,'%Y-%m-%d') AS pay_date,
       COUNT(DISTINCT user_id) AS user_count
FROM Orders
WHERE order_amount>0
AND MONTH(pay_date)=MONTH(NOW())-1
GROUP BY pay_date
ORDER BY user_count DESC
LIMIT 3;

在这份销售数据中,我们主要需要的是order_id(订单ID),user_id(客户ID),pay_time(交易时间),order_amount(交易金额)。由于一天中可能有客户多次购买,所以需要对客户进行去重处理,另外对月份进行定位(上一个月),和过滤付款用户。然后进行排序直接锁定付款用户量最高的三天。

SELECT user_id,order_id,order_amount
FROM Orders
WHERE DATE_FORMAT(pay_time,'%Y-%m-%d')=DATE_SUB(CURDATE(),interval 1 day)
AND DATE_FORMAT(pay_time,
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值