多条件分类统计group by 显示数目为0的类别

这是下面这个sql练习网站的第58个题目
http://www.sql-ex.ru/learn_exercises.php?LN=58
有一个表Product(maker, model, type),
三种产品类别,想要统计每个生产商每个类别占每个生产商总产品个数的百分比。

maker model type
A 1232 PC
A 1233 PC
A 1276 Printer
A 1298 Laptop
A 1401 Printer
A 1408 Printer
A 1752 Laptop
B 1121 PC
B 1750 Laptop
C 1321 Laptop
D 1288 Printer
D 1433 Printer
E 1260 PC
E 1434 Printer
E 2112 PC
E 2113 PC

最终答案是
maker type prc
A Laptop 28.57
A PC 28.57
A Printer 42.86
B Laptop 50.00
B PC 50.00
B Printer .00
C Laptop 100.00
C PC .00
C Printer .00
D Laptop .00
D PC .00
D Printer 100.00
E Laptop .00
E PC 75.00
E Printer 25.00

c币没有多少了全拿出来,恳请各位路过的大神解答

目前的进度到了
WITH t AS(
SELECT maker, type, COUNT(model) as num
FROM Product
GROUP BY maker,type),
tt AS(
SELECT maker,SUM(num) as sum
FROM t
GROUP BY maker
)

SELECT t.maker, t.type, CAST( (t.num*100.0/tt.sum) AS decimal(5,2) ) as prc
FROM t JOIN tt ON t.maker = tt.maker

出来的结果是
maker type prc
A Laptop 28.57
A PC 28.57
A Printer 42.86
B Laptop 50.00
B PC 50.00
C Laptop 100.00
D Printer 100.00
E PC 75.00
E Printer 25.00

没有记录的生产商的类别没有0,不知道该怎么做

select a.maker,a.type,a.typeTotal/b.markerTotal*100  percent from
(select maker ,type, sum(model) typeTotal markerTotal from Product group by maker,type)a
left join 
(select maker  , sum(model) makerTotal from Product group by maker)b
on a.marker=b.maker

你的表中没有market=C, type=PC这个值存在,所以肯定是统计不到,如果想要这样的结果表设计应该是2张表 Product: productid,market,prtype;ProductModel:id, productid,model

@张大教主 感谢回答,但这样的结果还是出不来要的结果,而且语句貌似有问题,语法通不过。
@丵鹰 感谢回答,我也明白这个问题,这个是一个俄罗斯sql练习的网站,表的结构已经定了,要求编写sql语句查到符合它答案的。很头疼,不知道怎么写了,应该是有个技巧,题目提示有
· Help topics:
Getting summarizing values
Data type conversion
Explicit join operations
Cartesian product
Correlated subqueries