Mysql计数按多个表分组
您好,我正在寻找Mysql查询以显示来自两个表的count作为组 表1=工厂Mysql计数按多个表分组,mysql,Mysql,您好,我正在寻找Mysql查询以显示来自两个表的count作为组 表1=工厂 P_id Plant location Employee 1 DUBAI Employee A 2 SHARJAH Employee A 3 OMAN Employee B 4 DAMMAM Employee C 5 RIYADH Employee C 表2
P_id Plant location Employee
1 DUBAI Employee A
2 SHARJAH Employee A
3 OMAN Employee B
4 DAMMAM Employee C
5 RIYADH Employee C
表2=访问
V_id Visit status Plant location Employee
1 Done DUBAI Employee A
2 Done SHARJAH Employee A
3 Done OMAN Employee B
4 Done RIYADH Employee C
我需要结果
Employee Visit Completed Remaining Visits Result
Employee A 2 0 100 %
Employee B 1 0 100 %
Employee C 1 1 50%
我使用了上面的代码。它只显示访问计数。但是我怎样才能用这个语句得到上面的结果表呢
SELECT
Employee,
count_plant `Visit Completed`
,(count_plant -count_visits)`Remaining Visits`
, CONCAT(ROUND(((count_visits / count_plant) * 100),1), " %") Result
FROM
(SELECT
p.Employee,
COUNT(p.`Plant location`) count_plant
,COUNT(v.`Plant location`) count_visits
FROM
(SELECT
* FROM plant) p
LEFT join
(SELECT *
FROM visits
WHERE `Visit status` = 'Done' ) v
ON p.Employee = v.Employee
and p.`Plant location` = v.`Plant location`
GROUP BY p.Employee) p_v;
给出以下结果
Employee Visit Completed Remaining Visits Result
Employee A 2 0 100.0 %
Employee B 1 0 100.0 %
Employee C 2 1 50.0 %
结果列在逗号后四舍五入为i位数。
您应该看看这是否是您所需要的。访问和完成从何而来?计算的百分比是多少?工厂的
表是用来做什么的?这个问题有一些不一致之处。首先,您没有解释结果字段,我假设它是根据“访问状态”和计数(V_id)计算的。如果是这种情况,你需要在你的问题中包括这一点。此外,由于有两个表,SELECT语句中必须有一个联接,例如…从访问a联接工厂B到a.Employee=B.Employee。。。请在您的问题中添加更多详细信息。
Employee Visit Completed Remaining Visits Result
Employee A 2 0 100.0 %
Employee B 1 0 100.0 %
Employee C 2 1 50.0 %