1
我的产品表提供这样替代子选择在MySQL
Producer Category Quality
113085 EIT 05
113085 EIT 06
113085 EIT 04
113085 EIT 05
113085 EIT 05
116159 EIT 05
116159 EIT 04
116159 EIT 04
110058 EIT 06
121570 EIT 04
我想瑟每个生产者相比,平均百分比所有生产者质量等级之间的分配。 像这样:
Producer Category Quality Totalpercent Producerpercent
113085 EIT 05 40 60
113085 EIT 06 20 20
113085 EIT 04 40 20
我有这样的选择做我想做的,但它周围260.000记录运行70-80秒,我的服务器上,这是很多:-)
你有任何提示加快这一点?
select
Producer as Producer1,
Category as Category1,
Quality as 'Quality1',
Round(((select count(*) from base where Category=Category1 and Quality=Quality1 and deliverydate >'2016-10-01')/
(select count(*) from base where Category=Category1 and deliverydate >'2016-10-01')
*100),1) as 'Totalpercent',
Round(((select count(*) from base where Category=Category1 and Quality=Quality1 and deliverydate >'2016-10-01' and Producer=Producer1)/
((select count(*) from base where Category=Category1 and deliverydate >'2016-10-01' and Producer=Producer1))
*100),1) as 'Producerpercent'
from base where deliverydate >'2016-10-01' and Producer=113085 group by Category1, Quality1