MySQL某公司面试题--累计值的计算案例
题目:
根据下列数据,计算每个用户每月的最大的一单消费金额、月度消费次数、月度总消费金额、按月累计消费金额。消费金额按照数据库中的折后总价计算。
SQL语句:
# 需求:计算每个用户每月的最大的一单消费金额、按月累计消费金额、月度总消费金额。消费金额按照数据库中的折后总价计算。SET @SUM = 0, @c = 0, @k =NULL;SELECTT1.月份,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
答案:
