我有一个名为 JOBS 的数据库表,其中包含 ID、STATUS 和 COMPLETION_TIME 作为列。STATUS 0,1 成功,STATUS 2,3 失败,STATUS 4,5 被杀死。它只能有一种状态。我想找出过去 10 小时内成功、失败和终止的工作数量。我必须只使用 SELECT 进行查询,不能使用任何变量进行查询。我使用以下查询进行操作。
SELECT
(SELECT COUNT(*)
WHERE STATUS IN (0,1))AS SuccessCount,
(SELECT COUNT(*)
WHERE STATUS IN (2,3))AS FailedCount ,
(SELECT COUNT(*)
WHERE STATUS IN (4,5))AS KilledCount,
FROM JOBS
WHERE COMPLETION_TIME >= (SELECT DATEDIFF(s, '1970-01-01 00:00:00', GETUTCDATE()) - (10 * 60 * 60))
AND COMPLETION_TIME <= (SELECT DATEDIFF(s, '1970-01-01 00:00:00', GETUTCDATE()));
但是这个查询不起作用。它给了我成功、失败或被杀的工作,而不是他们的数量。