一、取用户第一次下单时间
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_date6 ORDER BY username,order_date#按日期升序7 ) AS a8 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_date6 ORDER BY username,order_date DESC #按日期降序7 ) AS a8 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的第一条记录 可得到末单日期 末单金额