我有一个独特的查询请求。
我运行此查询:
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语句中完成所有数学运算。
答案 0 :(得分: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
答案 1 :(得分: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'