1. 程式人生 > >sql按月統計數量和按月累加統計數量

sql按月統計數量和按月累加統計數量

字段 microsoft .org clas sel str div select style

1、簡單的,按月統計數量

SELECT CREATE_DATE, DATE_FORMAT(CREATE_DATE, %Y-%m) AS month
    , COUNT(*) AS sum
FROM pt_user
GROUP BY month;

2、按月累加統計數據

SELECT a.month, SUM(b.total) AS total
FROM (
    SELECT DATE_FORMAT(CREATE_DATE, %Y-%m) AS month, SUM(sum) AS total
    FROM (
        SELECT CREATE_DATE, DATE_FORMAT(CREATE_DATE, 
%Y-%m) AS month , COUNT(*) AS sum FROM pt_user GROUP BY month ) ptuser GROUP BY month ) a JOIN ( SELECT DATE_FORMAT(CREATE_DATE, %Y-%m) AS month, SUM(sum) AS total FROM ( SELECT CREATE_DATE, DATE_FORMAT(CREATE_DATE, %Y-%m
) AS month , COUNT(*) AS sum FROM pt_user GROUP BY month ) ptuser GROUP BY month ) b ON a.MONTH >= b.MONTH GROUP BY a.MONTH ORDER BY a.month;

3、多字段按月累加統計(eg:按租戶統計累加每月增長數量)

SELECT a.ORGAN_ID, a.month, SUM(b.total) AS total
FROM ( SELECT ORGAN_ID, DATE_FORMAT(CREATE_TIME, %Y-%m) AS month , SUM(sum) AS total FROM ( SELECT ORGAN_ID, CREATE_TIME, DATE_FORMAT(CREATE_TIME, %Y-%m) AS month , COUNT(*) AS sum FROM pt_user GROUP BY month ) ptuser GROUP BY ORGAN_ID, month ) a JOIN ( SELECT ORGAN_ID, DATE_FORMAT(CREATE_TIME, %Y-%m) AS month , SUM(sum) AS total FROM ( SELECT ORGAN_ID, CREATE_TIME, DATE_FORMAT(CREATE_TIME, %Y-%m) AS month , COUNT(*) AS sum FROM pt_user GROUP BY month ) ptuser GROUP BY ORGAN_ID, month ) b ON a.ORGAN_ID = b.ORGAN_ID AND a.MONTH >= b.MONTH GROUP BY a.MONTH ORDER BY a.ORGAN_ID, a.month;

sql按月統計數量和按月累加統計數量