我有一个从 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。
首先,这个假设是否正确?如果是这样,那么有没有办法进行一次减法并将其重用于每个聚合函数?
谢谢