开发者社区> 问答> 正文

mysql分组累计sql问题

某表有3个字段 分别为month money type 表结构和数据如下
screenshot
我想根据表的月份对表数据进行分组,并且还进行累计,比如2月份的累计数据就等于1月份的加上2月份的。 大概最后得出的结构如下图
screenshot
求高手帮忙指点一下sql 不知道一条sql语句能否实现,如果实现不了 哪就两个sql也可以。

展开
收起
吴孟桥 2016-06-12 17:07:50 3857 0
2 条回答
写回答
取消 提交回答
  • less is more

    nice~! 引用楼上的实践了一下,可达到预期

    SELECT MONTH,SUM(money) money,总累计,省内累计,省外累计 FROM
    (SELECT MONTH,money
    ,(SELECT SUM(money) FROM group_total WHERE MONTH >= '201501' AND MONTH <= r.month) AS '总累计',
    (SELECT SUM(money) FROM group_total WHERE MONTH >= '201501' AND MONTH <= r.month AND TYPE='省内') AS '省内累计',
    (SELECT SUM(money) FROM group_total WHERE MONTH >= '201501' AND MONTH <= r.month AND TYPE='省外') AS '省外累计'
    FROM group_total r
    ) Y GROUP BY MONTH,总累计,省内累计,省外累计 ORDER BY MONTH;
    

    建表语句

    
    CREATE TABLE `group_total` (
      `id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT 'MySQL分组累计SQL',
      `month` varchar(255) DEFAULT NULL,
      `money` int(11) unsigned DEFAULT '0',
      `type` varchar(60) DEFAULT '',
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8
    
    2019-08-16 18:01:30
    赞同 展开评论 打赏
  • 差不多就是下面这样,没有调测,自己试试
    screenshot

    2019-07-17 19:34:39
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
搭建电商项目架构连接MySQL 立即下载
搭建4层电商项目架构,实战连接MySQL 立即下载
PolarDB MySQL引擎重磅功能及产品能力盛大发布 立即下载

相关镜像