Don't you want much smaller summary table?
WITH everything AS(
SELECT maker,
COUNT(DISTINCT pc.model) pc,
COUNT(DISTINCT l.model) l,
COUNT(DISTINCT pr.model) pr
FROM Product p
LEFT JOIN Pc pc ON p.model = pc.model
LEFT JOIN Laptop l ON p.model = l.model
LEFT JOIN Printer pr ON p.model = pr.model
GROUP BY maker
)
SELECT maker, pc/(pc+l+pr) pc, l/(pc+l+pr) l, pr/(pc+l+pr) pr
WHERE (pc+l+pr)>0