mysql 按时间累计计算_MySQL某公司面试题累计值的计算案例

c7292688b746489f7e954367bf928128.png

题目:

根据下列数据,计算每个用户每月的最大的一单消费金额、月度消费次数、月度总消费金额、按月累计消费金额。消费金额按照数据库中的折后总价计算。

d13f9b0d15a5319a89e8f82f3b5d37ff.png

SQL语句:

# 需求:计算每个用户每月的最大的一单消费金额、按月累计消费金额、月度总消费金额。消费金额按照数据库中的折后总价计算。SET @SUM = 0, @c = 0, @k =NULL;SELECT     T1.月份,    T1.最大一单消费金额,    T1.月度消费次数,    IF(@k=客户编号,@SUM := @SUM + T1.月度消费金额,@SUM := T1.月度消费金额) AS 月累计消费金额,    @c := T1.月度消费金额 AS 月度消费金额,    @k := T1.客户编号 AS 客户编号FROM (    # ①先计算每月的最大的一单消费金额、按月累计消费金额、月度总消费金额    SELECT        客户编号,        DATE_FORMAT(下单时间,"%y-%m") AS 月份,        MAX(折后总价) AS 最大一单消费金额,        COUNT(客户编号) AS 月度消费次数,        SUM(折后总价) AS  月度消费金额    FROM        客户分类表    GROUP BY        客户编号,        DATE_FORMAT(下单时间,"%y-%m")    ORDER BY         客户编号 ASC,        DATE_FORMAT(下单时间,"%y-%m") ASC) AS T1

答案:

3c7acba8296edff39c31a3391d05286c.png

a843892826a375b33a869d016c5b5009.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值