henda 发表于 2018-10-20 06:41:49

数据统计SQL备忘

SELECT  
date AS 'date',
  
pay AS 'pay',
  
rank,
  
roleId
  
FROM
  
(
  
    SELECT
  
      zl_tmp.roleId,
  
      zl_tmp.date,
  
      zl_tmp.pay,
  
      @rownum := @rownum + 1,
  
      IF(
  
      @date = zl_tmp.date, @rank := @rank + 1,
  
      @rank := 1
  
      ) AS 'rank',
  
      @date := zl_tmp.date
  
    FROM
  
      (
  
      SELECT
  
          roleId,
  
          SUM(cash) AS 'pay',
  
          DATE_FORMAT(logTime, '%Y-%m-%d') AS 'date'
  
      FROM
  
          player_recharge
  
      WHERE
  
          logTime >= '2017-09-01'
  
          AND logTime < '2017-10-01'
  
      GROUP BY
  
          date,
  
          roleId
  
      ORDER BY
  
          date,
  
          pay DESC
  
      ) zl_tmp,
  
      (
  
      SELECT
  
          @rownum := 0,
  
          @date := NULL,
  
          @rank := 0
  
      ) a
  
) result
  
HAVING
  
rank
页: [1]
查看完整版本: 数据统计SQL备忘