1

我有一个独特的查询请求。

我运行这个查询:

select * from documentationissues
where dateAdded is not null
and dateAdded >= '2013-10-09 10:37:15.483'

这将返回我,但是自从 dateAdded 子句以来已经插入了许多行。我想要做的就是在查询中做我所有的数学运算。

我需要弄清楚自 dateAdded 子句以来已经过去了多少分钟。我需要计算返回的行数。然后,我需要计算出平均每分钟平均完成多少行,然后每小时完成多少行。然后说是否有 6,000,000 个文件要完成。以平均日费率处理所有文件需要多少天。

如果我现在运行查询,它会在今天上午 10:56:15 返回 2100 个结果。

所以这将是 19 分钟过去了,大约每分钟 110 行,每小时大约 6600 行。

我不确定如何在 select 语句中使用分组等进行所有数学运算。

4

2 回答 2

3

这是另一个选项,其中还包括您要求的所有字段:

SELECT M.RowsReturned, M.MinutesPassed,
       M.RowsReturned / M.MinutesPassed AS AvgPerMinute,
       M.RowsReturned / M.MinutesPassed * 60 AS AvgPerHour,
       6000000 / M.RowsReturned  / M.MinutesPassed / 1440 AS DaysToProcess
FROM (
   SELECT COUNT(*) AS RowsReturned, 
   DATEDIFF(minute, '2013-10-09 10:37:15.483', CURRENT_TIMESTAMP) AS MinutesPassed
   FROM documentationissues
   WHERE dateAdded is NOT NULL
   AND dateAdded >= '2013-10-09 10:37:15.483'
) AS M
于 2013-10-09T17:28:44.267 回答
2

尝试这个:

SELECT COUNT(*)/DATEDIFF(minute, '2013-10-09 10:37:15.483', GETDATE()) AS AvgPerMin,
        COUNT(*)/DATEDIFF(minute, '2013-10-09 10:37:15.483', GETDATE()) * 60 AS AvgPerHr
from documentationissues
where dateAdded is not null
and dateAdded >= '2013-10-09 10:37:15.483'
于 2013-10-09T17:14:58.043 回答