資料統計SQL備忘

來源:互聯網
上載者:User

標籤:sql   統計   

1、統計9月註冊角色首次儲值時的遊戲時間長度分布(分鐘,人數),單位:分鐘

SELECT sub.minutes,       Count(roleId) AS countFROM   (SELECT pr.roleId,               Timestampdiff(MINUTE, Max(player_login.logTime), pr.logTime)               + Ifnull(Max(player_logout.totalOnlineMins), 0) AS minutes        FROM   (SELECT logTime,                       roleId                FROM   player_recharge                WHERE  createTime >= ‘2017-09-01‘                       AND createTime < ‘2017-10-01‘                       AND rechargeTimes = 1) AS pr               LEFT JOIN player_logout                      ON player_logout.roleId = pr.roleId               LEFT JOIN player_login                      ON player_login.roleId = pr.roleId        WHERE  player_logout.logTime < pr.logTime               AND player_login.logTime < pr.logTime        GROUP  BY pr.roleId) AS subWHERE  sub.minutes > 0GROUP  BY sub.minutes;

2、按天分組,查9月每天付費前10排行(日期,付費金額,排名,角色ID)

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 <= 10;


3、統計9月每日付費轉化率(日期,活躍使用者數,付費使用者數)

SELECT   pl.date,   pl.plCount AS activeAccoCount,   COALESCE(pr.prCount, 0) AS payAccoCount FROM   (    SELECT       Date_format(logTime, ‘%Y-%m-%d‘) AS date,       Count(DISTINCT roleId) AS plCount     FROM       player_login     WHERE       logTime >= ‘2017-09-01‘       AND logTime < ‘2017-10-01‘     GROUP BY       date  ) AS pl   LEFT JOIN (    SELECT       Date_format(logTime, ‘%Y-%m-%d‘) AS date,       Count(DISTINCT roleId) AS prCount     FROM       player_recharge     WHERE       logTime >= ‘2017-09-01‘       AND logTime < ‘2017-10-01‘     GROUP BY       date  ) AS pr ON pl.date = pr.date;


本文出自 “zl1030的記錄” 部落格,請務必保留此出處http://zl1030.blog.51cto.com/274507/1964561

資料統計SQL備忘

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.