MySQL-mysql统计用户不同充值渠道的充值总数

需求定制 需求定制 主题:1050 回复:2283

MySQL-mysql统计用户不同充值渠道的充值总数

泛泛之交 发布于 2017-05-28 字数 786 浏览 1060 回复 2

数据库结构:

create table tx(
id int(11) primary key,
c1 varchar(255) COMMENT '用户名',
c2 varchar(255) COMMENT '充值渠道',
c3 int(11) COMMENT '充值金额'
);
insert into tx values
(1 ,'A1','B1',9),
(2 ,'A2','B1',7),
(3 ,'A3','B1',4),
(4 ,'A4','B1',2),
(5 ,'A1','B2',2),
(6 ,'A2','B2',9),
(7 ,'A3','B2',8),
(8 ,'A4','B2',5),
(9 ,'A1','B3',1),
(10 ,'A2','B3',8),
(11 ,'A3','B3',8),
(12 ,'A4','B3',6),
(13 ,'A1','B4',8),
(14 ,'A2','B4',2),
(15 ,'A3','B4',6),
(16 ,'A4','B4',9),
(17 ,'A1','B4',3),
(18 ,'A2','B4',5),
(19 ,'A3','B4',2),
(20 ,'A4','B4',5);

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

支持 Markdown 语法,需要帮助?

评论(2

晚风撩人 2017-07-24 2 楼

sql语句如下:

 SELECT IFNULL(c1,'total') AS C1,
SUM(if(c2='B1',c3,0)) AS B1,
SUM(if(c2='B2',c3,0)) AS B2,
SUM(if(c2='B3',c3,0)) AS B3,
SUM(if(c2='B4',c3,0)) AS B4,
SUM(c3) AS TOTAL
FROM tx
GROUP BY c1 WITH ROLLUP ;

夜无邪 2017-07-05 1 楼

动态,适用于渠道不确定情况,

 SET @EE='';
SELECT @EE:=CONCAT(@EE,'SUM(IF(c2='',c2,''',',c3,0)) AS ',c2,',') FROM (SELECT DISTINCT c2 FROM tx) A;
SET @QQ=CONCAT('SELECT ifnull(c1,'total'),',LEFT(@EE,LENGTH(@EE)-1),' ,SUM(c3) AS TOTAL FROM tx GROUP BY c1 WITH ROLLUP');
PREPARE stmt2 FROM @QQ;
EXECUTE stmt2;