查询出的结果字段基本上全是根据条件进行数据统计后的数据。
比如:生产批号 生产总数 合格品 合格率 不良品 不良率 报废品 报废率 总数,合格品这些都是从几张表里查数据根据不同条件的统计数据。
我现在使用自定义函数分别生产总数、合格品、合格率这些全部算出来,然后几张表联合查询传参进去。
但现在的问题是表里数据一多,速度就明显慢很多很多。
请问像这种多统计的查询用什么方法查询方便且不影响查询速度,因为现在发现不用自定义函数统计出一个结果来查询的话,统计起来很麻烦。
比如:生产批号 生产总数 合格品 合格率 不良品 不良率 报废品 报废率 总数,合格品这些都是从几张表里查数据根据不同条件的统计数据。
我现在使用自定义函数分别生产总数、合格品、合格率这些全部算出来,然后几张表联合查询传参进去。
但现在的问题是表里数据一多,速度就明显慢很多很多。
请问像这种多统计的查询用什么方法查询方便且不影响查询速度,因为现在发现不用自定义函数统计出一个结果来查询的话,统计起来很麻烦。
select ...
from
(
(子查询) as 生产总数
xxx join
(子查询) as 合格品
xxx join
.
.
.
)
生产批号 良品数量 确认时间 表B:
生产批号 不良品数量 不良类别 确认时间不良类别有报废品,处理品汇总同一确认时间同一批次以下数据:
生产批号 生产总数 良品数量 良品率(良品/生产总数) 不良品(所有不良品) 不良率(所有不良品/生产总数 报废品(不良类别为报废品) 报废率(不良类别为报废品/生产总数)
我现在的方法是select 生产批号,自定义函数(生产批号,确认时间)as 生产总数,自定义函数(生产批号,确认时间)as 良品数量 ....from 表A GROUP BY 生产批号,确认时间
这样做数据一多就慢得要命。