阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

MySQL按日期分组并统计截止当前时间的总数实例教程

126次阅读
没有评论

共计 1268 个字符,预计需要花费 4 分钟才能阅读完成。

MySQL 按日期分组并统计截止当前时间的总数

建表语句

SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;

— —————————-
— Table structure for t_reg
— —————————-
DROP TABLE IF EXISTS `t_reg`;
CREATE TABLE `t_reg`  (
  `ID` int(11) NOT NULL AUTO_INCREMENT COMMENT ‘ID 编号 ’,
  `REG_TIME` datetime(0) NULL DEFAULT NULL COMMENT ‘ 时间 ’,
  `REG_COUNT` int(11) NULL DEFAULT NULL COMMENT ‘ 数量 ’,
  PRIMARY KEY (`ID`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 8 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;

— —————————-
— Records of t_reg
— —————————-
INSERT INTO `t_reg` VALUES (1, ‘2019-05-01 08:08:12’, 1);
INSERT INTO `t_reg` VALUES (2, ‘2019-05-02 00:09:09’, 10);
INSERT INTO `t_reg` VALUES (3, ‘2019-05-02 13:08:08’, 2);
INSERT INTO `t_reg` VALUES (4, ‘2019-05-03 15:08:05’, 4);
INSERT INTO `t_reg` VALUES (5, ‘2019-05-03 17:08:08’, 6);
INSERT INTO `t_reg` VALUES (6, ‘2019-05-16 21:01:12’, 4);
INSERT INTO `t_reg` VALUES (7, ‘2019-05-03 05:08:09’, 11);

SET FOREIGN_KEY_CHECKS = 1;

表结构如下所示:REG_COUNT  表示当天新增的用户数

MySQL 按日期分组并统计截止当前时间的总数实例教程

现在的需求是这样的:按每天分组,查询当天新增的用户总数和截止到当前时间新增的用户总数,结果如下:

MySQL 按日期分组并统计截止当前时间的总数实例教程

SQL 语句如下:

SELECT
    reg_time,
    min_total AS ‘ 小计 ’,
    @total := @total + min_total AS ‘ 总计 ’
FROM
    (SELECT date( reg_time) AS reg_time,
    sum(reg_count) AS min_total FROM t_reg GROUP BY date(reg_time) ) AS temp,
    (SELECT @total := 0) AS T1
ORDER BY
    reg_time;

解释一下:SELECT @total := 0,, 这句的意思是给临时变量 @total 设置值为 0;

如此即可得出上面的结果满足需求.

正文完
星哥说事-微信公众号
post-qrcode
 
星锅
版权声明:本站原创文章,由 星锅 2022-01-22发表,共计1268字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中