Mysql如何实现两个表分别分组求和后合并?

ltf7107 2020-03-13 10:37:21
table_01
addate model plan impress click spend
2020年1月1日 X2 计划A 1 1 1
2020年1月1日 MR 计划B 1 1 1
2020年1月2日 MR 计划B 1 1 1
2020年1月2日 X2 计划A 1 1 1
2020年1月3日 X2 计划A 1 1 1
2020年1月3日 MR 计划B 1 1 1
2020年1月3日 MR 计划C 1 1 1
2020年1月1日 X2 计划B 1 1 1
2020年1月2日 X2 计划B 1 1 1
2020年1月3日 X2 计划B 1 1 1

table_02
brdate link model view unit_ordered sales
2020年1月1日 链接1 X2 1 1 1
2020年1月1日 链接3 MR 1 1 1
2020年1月2日 链接3 MR 1 1 1
2020年1月2日 链接1 X2 1 1 1
2020年1月3日 链接1 X2 1 1 1
2020年1月3日 链接3 MR 1 1 1
2020年1月1日 链接2 X2 1 1 1
2020年1月2日 链接2 X2 1 1 1
2020年1月3日 链接2 X2 1 1 1


以下是希望得到的数据表格
brdate model 求和项:view 求和项:unit_ordered 求和项:sales
2020/1/1 MR 1 1 1
2020/1/1 X2 2 2 2
2020/1/2 MR 1 1 1
2020/1/2 X2 2 2 2
2020/1/3 MR 1 1 1
2020/1/3 X2 2 2 2

这个过程用mysql该如何实现,谢谢了


...全文
904 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
ltf7107 2020-03-21
  • 打赏
  • 举报
回复
谢谢回复,你理解错我的意思了,合并后的字段,我需要date、model、impress、click、spend、view、unit_ordered、sales, impress和view,click和unit_ordered,spend和sales 并不能相加 我写了一个逻辑,帮忙看一下为什么出不开结果 逻辑说明:先对a表进行分组求和group by date,model,这样date 和model就可以成为a新表的唯一值作为主键 再对b表进行分组求和group by date,model,这样date 和model就可以成为b新表的唯一值作为主键 这样两个新表就都有了唯一值主键,就可以对两个新表进行 inner join,但尝试的结果总是报错 帮忙看一下什么原因,插入表达式都已经贴出,谢谢 CREATE TABLE `a` ( `addate` date NULL DEFAULT NULL, `model` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, `plan` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, `impress` int(11) NULL DEFAULT NULL, `click` int(11) NULL DEFAULT NULL, `spend` decimal(10, 0) NULL DEFAULT NULL ) INSERT INTO `a` VALUES ('2020-01-01', 'X2', '计划A', 1, 1, 1); INSERT INTO `a` VALUES ('2020-01-01', 'MR35', '计划B', 1, 1, 1); INSERT INTO `a` VALUES ('2020-01-02', 'MR35', '计划B', 1, 1, 1); INSERT INTO `a` VALUES ('2020-01-02', 'X2', '计划A', 1, 1, 1); INSERT INTO `a` VALUES ('2020-01-03', 'X2', '计划A', 1, 1, 1); INSERT INTO `a` VALUES ('2020-01-03', 'MR35', '计划B', 1, 1, 1); INSERT INTO `a` VALUES ('2020-01-03', 'MR35', '计划C', 1, 1, 1); INSERT INTO `a` VALUES ('2020-01-01', 'X2', '计划B', 1, 1, 1); INSERT INTO `a` VALUES ('2020-01-02', 'X2', '计划B', 1, 1, 1); INSERT INTO `a` VALUES ('2020-01-03', 'X2', '计划B', 1, 1, 1); CREATE TABLE `b` ( `brdate` date NULL DEFAULT NULL, `link` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, `model` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, `view` int(11) NULL DEFAULT NULL, `unit_ordered` int(11) NULL DEFAULT NULL, `sales` decimal(10, 0) NULL DEFAULT NULL ) INSERT INTO `b` VALUES ('2020-01-01', '链接1', 'X2', 1, 1, 1); INSERT INTO `b` VALUES ('2020-01-01', '链接3', 'MR35', 1, 1, 1); INSERT INTO `b` VALUES ('2020-01-02', '链接3', 'MR35', 1, 1, 1); INSERT INTO `b` VALUES ('2020-01-02', '链接1', 'X2', 1, 1, 1); INSERT INTO `b` VALUES ('2020-01-03', '链接1', 'X2', 1, 1, 1); INSERT INTO `b` VALUES ('2020-01-03', '链接3', 'MR35', 1, 1, 1); INSERT INTO `b` VALUES ('2020-01-01', '链接2', 'X2', 1, 1, 1); INSERT INTO `b` VALUES ('2020-01-02', '链接2', 'X2', 1, 1, 1); INSERT INTO `b` VALUES ('2020-01-03', '链接2', 'X2', 1, 1, 1); select m.addate,m.model,sum(m.im),sum(n.sa) from (select a.addate,a.model,sum(a.impress) as im from a group by a.addate,a.model) m --对a分组求和后日期和model可以组合成唯一值 inner JOIN (select b.brdate,b.model,sum(b.sales) as sa from b group by b.brdate,b.model) n --对b分组求和后日期和model可以组合成唯一值 on m.addate=n.brdate and m.model=n.model --最后inner join合并
lhdz_bj 2020-03-18
  • 打赏
  • 举报
回复
select addate adbrdate,model,sum(impress) sum1,sum(click) sum2,sum(spend) sum3
from table_01
group by addate,model
union all
select brdate adbrdate,model,sum(view) sum1,sum(unit_ordered) sum2,sum(sales) sum3
from table_02
group by brdate,model;

56,678

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧