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該如何實作,謝謝了
uj5u.com熱心網友回復:
select addate adbrdate,model,sum(impress) sum1,sum(click) sum2,sum(spend) sum3from 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;
uj5u.com熱心網友回復:
謝謝回復,你理解錯我的意思了,合并后的欄位,我需要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合并
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/26674.html
標籤:MySQL
下一篇:sqlite資料庫洗掉問題
