mysql客户首末单时间 group by用法_20160927

一、取用户第一次下单时间

1 SELECT city,username,`order_date` AS 首单日期,金额 AS 首单金额
2 FROM (
3     SELECT city,username,`order_date`,SUM(`pay_money`) AS 金额
4     FROM `test_a03order`
5     GROUP BY username,order_date
6     ORDER BY username,order_date#按日期升序
7 ) AS a
8 GROUP BY username#只用username聚合

二、取用户末单时间

1 SELECT city,username,`order_date` AS 末单日期,金额 AS 末单金额
2 FROM (
3     SELECT city,username,`order_date`,SUM(`pay_money`) AS 金额
4     FROM `test_a03order`
5     GROUP BY username,order_date
6     ORDER BY username,order_date DESC #按日期降序
7 ) AS a
8 GROUP BY username#只用username聚合

三、mysql group by 

“Group By”从字面意义上理解就是根据“By”指定的规则对数据进行分组,将一个“数据集”划分成若干个“小区域”,然后针对若干个“小区域”进行数据处理。

取首单日期

1、需要先根据username 和order_date 进行分组 得到username 在每个order_date的金额  并且对username和order_date 进行升序排列 这是一个小的数据表 记为a

2、在a表中再次对username字段进行聚合 则会取username的第一条记录 可得到首单日期 首单金额

取末单日期 

取首单日期时候我们知道  对在a表中再次对username字段进行聚合 则会取username的第一条记录 因此

1、需要先根据username 和order_date 进行分组 得到username 在每个order_date的金额  并且对username和order_date 进行降序排列 这是一个小的数据表 记为b

2、在b表中再次对username字段进行聚合 则会取username的第一条记录 可得到末单日期 末单金额

 

转载于:https://www.cnblogs.com/Mr-Cxy/p/5912228.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值