背景描述:
表A 字段:id, deal_time deal_amount deal_type
(交易时间) (交易金额) (交易类型)
1 2016.11.20 10 0
1 2016.11.21 40 0
1 2016.11.22 15 1
2 2016.11.20 15 0
2 2016.11.21 10 0
2 2016.11.22 10 0
3 2016.11.20 10 1
现想统计交易类型为 0 的每个 id 的交易总金额,及交易次数即:
表B 字段: id, sum_amount deal_times ...(其他属性)
交易总金额 交易次数
1 50 2
2 35 3
方法:借用临时表
step1: 创建一个临时表:
create temporary table tmp(
id int,
deal_sum_amount int,
deal_times int
index(id)
) char set utf8;
step2: 将查询的结果放入临时表
insert into tmp select id, sum(deal_amount), count(id) from A where deal_type = 0 group by id;
step3: 更新表
update B, tmp t set B.sum_amount = t. deal_sum_amount , B . deal_times = t . deal_times where B.id = t . id;