某表有3个字段 分别为month money type 表结构和数据如下
我想根据表的月份对表数据进行分组,并且还进行累计,比如2月份的累计数据就等于1月份的加上2月份的。 大概最后得出的结构如下图
求高手帮忙指点一下sql 不知道一条sql语句能否实现,如果实现不了 哪就两个sql也可以。
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
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。