U moet kolom infection
groeperen en (ip
&ipc
) op een andere manier, voeg ze dan toe met behulp van een subquery als volgt:
SELECT t1.ip, t1.isp, t2.infection, t1.ipc, t1. ispc, t2.incount
FROM
(SELECT ip, isp, infection, COUNT(ip) as ipc, COUNT(isp) as ispc
FROM (
SELECT ip, isp, infection
FROM tbl1
UNION ALL
SELECT ip, isp, infection
FROM tbl2
UNION ALL
SELECT ip, isp, infection
FROM tbl3
)x
GROUP BY ip, isp) t1
JOIN
(SELECT ip, isp, infection, COUNT(infection) as incount
FROM (
SELECT ip, isp, infection
FROM tbl1
UNION ALL
SELECT ip, isp, infection
FROM tbl2
UNION ALL
SELECT ip, isp, infection
FROM tbl3
)x
GROUP BY ip, isp, infection)t2
ON t1.ip = t2.ip
ORDER BY ip, isp, infection Desc
Bekijk deze SQLFiddle
Opmerking: Ik denk dat je gewenste output verkeerd is omdat:
- In
Table3
er is geeninfection
voorip=6
maar het staat in je output infection
other
ontbreekt in uw uitvoer (in plaats daarvan is ermalware
)