我有一台从1台PC运行的工具。它创建了作业并将它们放在beanstalk上以供其他PC执行。创建作业时,会在job_times表中创建一行,并填充JobID
和Created
列。然后,当PC抓取要执行的作业时,将填充Claimed
列。成功完成作业后,将填充Completed
列。除JobID
之外的所有列都填充了* nix时间戳。
我正在为该工具构建一些基本报告,我可以使用像这样的MySQL语句轻松获取统计数据,以确定创建工作和工作声明之间的时间:
SELECT AVG(Claimed - Created) AS ave, STDDEV(Claimed - Created) AS std, MIN(Claimed - Created) AS min, MAX(Claimed - Created) AS max FROM job_times WHERE Claimed > 0 AND Created > 0
我假设在(Claimed - Created)
的每个实例中,MySQL都在抓取所有适用的行并进行减法。因此,对于上面的语句,MySQL每行减去4次 - 一次用于AVG,一次用于STDDEV,一次用于MIN,一次用于MAX。
首先,这个假设是否正确?如果是这样,那么有没有办法进行一次减法并为每个聚合函数重复使用它?
由于