mysql将具有相同列值的两行连接起来,并计算某些列值,并在一行中返回所有行

时间:2018-09-06 09:21:58

标签: mysql

我有一个表名agents_commission,具有列ID,agent_id,deal_id,佣金,deal_date。

agents_commission

我想从agent_id中选择commissionagents_commission,其中month({date_deal)='$ month'和year(date_deal)='$年”;

但是如果表中的某些行具有相同的agent_id,则将同一行合并为一行,并计算commission值,如第1、2行中的66666.7 + 100000行

成为最终的fetch_assoc

array('agent_id'=> 1,'commision'=> 166666.7);

谢谢

2 个答案:

答案 0 :(得分:2)

尝试使用分组和汇总:

awk -F, 'FNR==NR{a[$1];next}!($1 in a){print $1}' b.txt a.txt

答案 1 :(得分:2)

如果仅要按一列(代理ID)分组,则不能全部选择。您可以执行以下操作

select agent_id, sum(commission) as commission from temp where MONTH(deal_date) = '09' and year(deal_date) ='2018' group by agent_id;

GROUP BY子句中使用的SELECT语句只能包含列名,聚合函数,常量和表达式。

引用https://dev.mysql.com/doc/refman/5.5/en/group-by-modifiers.html