zoukankan      html  css  js  c++  java
  • 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的第一条记录 可得到末单日期 末单金额

  • 相关阅读:
    洛谷 P1767 家族_NOI导刊2010普及(10)
    洛谷 P2919 [USACO08NOV]守护农场Guarding the Farm
    COGS 1619. [HEOI2012]采花
    UVA 11181 Probability|Given
    hdu 3336 Count the string
    洛谷 P2176 [USACO14FEB]路障Roadblock
    洛谷 P2691 逃离
    BZOJ 1040: [ZJOI2008]骑士
    vijos 1320 清点人数
    POJ 3417 Network
  • 原文地址:https://www.cnblogs.com/Mr-Cxy/p/5912228.html
Copyright © 2011-2022 走看看