Mysql Sql在结果之后求两列相同id的和
结果是:Mysql Sql在结果之后求两列相同id的和,mysql,sql,mysql-workbench,Mysql,Sql,Mysql Workbench,结果是: +-------+--------+--------+-----+--------------+ | Count | Equipe | IdTeam | Id | Name | +-------+--------+--------+-----+--------------+ | 21 | A | 1 | 358 | closs on D | | 107 | B | 2 | 358 | closs D |
+-------+--------+--------+-----+--------------+
| Count | Equipe | IdTeam | Id | Name |
+-------+--------+--------+-----+--------------+
| 21 | A | 1 | 358 | closs on D |
| 107 | B | 2 | 358 | closs D |
| 15 | A | 1 | 357 | Asos closs D |
| 9 | B | 2 | 357 | Asos closs D |
+-------+--------+--------+-----+--------------+
如果Id相同,我需要这个total=count+count
+-------+--------+---------+---------+-----+---------------+
| total | Count | Equipe | IdTeam | Id | Name |
+-------+--------+---------+---------+-----+---------------+
| 128 | 21 | A | 1 | 358 | closs D |
| 128 | 107 | B | 2 | 358 | closs D |
| 24 | 15 | A | 1 | 357 | Asos closs D |
| 24 | 9 | B | 2 | 357 | Asos closs D |
+-------+--------+---------+---------+-----+---------------+
所以我补充说:
sum(CASE WHEN t2_aop_appel.t2_aop_Zone_Id = t2_aop_appel.t2_aop_Zone_Id
THEN 1
ELSE 0
end) as total
所以我试着这样做:
SELECT sum(CASE WHEN t2_aop_appel.t2_aop_Zone_Id=t2_aop_appel.t2_aop_Zone_Id THEN 1 ELSE 0 end) as total,count(*) as Count,t2_aop_equipe.Name as Equipe,t2_aop_equipe.Id as IdTeam,t2_aop_appel.t2_aop_Zone_Id as Id,t2_aop_zone.Name
FROM t2_aop_appel
join t2_aop_equipe on t2_aop_appel.t2_aop_Equipe_Id = t2_aop_equipe.Id
join t2_aop_zone on t2_aop_appel.t2_aop_Zone_Id = t2_aop_zone.Id
WHERE t2_aop_appel.t2_aop_Usine_Id = 1 AND t2_aop_appel.t2_aop_Departement_Id = 1 AND t2_aop_appel.t2_aop_Atelier_Id = 3 AND
t2_aop_appel.t2_aop_Ligne_Id = 13 AND t2_aop_appel.t2_aop_Appel_Type_Id in(1) AND t2_aop_appel.t2_aop_Equipe_Id in(1,2) AND
t2_aop_appel.t2_aop_Category_Id in(1,2,3,4,5,6) AND t2_aop_appel.Appel >= '2017-11-20' AND t2_aop_appel.Appel <= '2017-11-26'
Group By t2_aop_equipe.Name,t2_aop_zone.Id
选择sum(当t2_aop_appel.t2_aop_Zone_Id=t2_aop_appel.t2_aop_Zone_Id然后选择1或0 end)作为总计,count(*)作为计数,t2_aop_equipe.Name作为设备,t2_aop_equipe.Id作为IdTeam,t2_aop_appel.t2_aop_equipe.t2_aop_Zone_Id作为Id,t2_aop_Zone.Name
来自t2_aop_appel
在t2_aop_appel.t2_aop_equipe_Id=t2_aop_equipe.Id上加入t2_aop_equipe
在t2_aop_appel.t2_aop_zone_Id=t2_aop_zone.Id上加入t2_aop_zone
其中t2_aop_appel.t2_aop_Usine_Id=1,t2_aop_appel.t2_aop_department_Id=1,t2_aop_appel.t2_aop_Atelier_Id=3,以及
(1)中的t2_aop_appel.t2_aop_Ligne_Id=13和(1,2)中的t2_aop_appel.t2_aop_appel.t2_aop_设备Id和
t2_aop_appel.t2_aop_Category_Id in(1,2,3,4,5,6)和t2_aop_appel.appel>='2017-11-20'和t2_aop_appel.appel您需要一个子查询
SELECT *, (SELECT SUM(Count)
FROM YourTable t2
WHERE t2.Id = t1.Id ) as Total
FROM YourTable t1
注意:在本例中,YourTable是生成第一个结果的查询。因此,您要么重复查询,要么将其保存为临时表。我认为我无法尝试使用此命名策略:-(