SQL-一个表中的两个日期列,以查找最繁忙的分钟

时间:2017-03-11 02:25:50

标签: sql oracle

我有一个应用程序数据库,当有进程发生时,此表有一个时间戳。 start_time和complete_time有两列,可以显示表中任何进程的条目。

现在,start_time和same_time一起有很多相同的时间戳,我试图找到start和complete_time在那一分钟内发生了多少个进程。我不知道如何将start_time与complete_time结合起来,它将显示那一分钟发生了多少条目。我现在只能显示start_time。这将有助于我们在应用程序端看到最重的负载。谢谢你的时间。

WITH mainQuery
as (select TO_CHAR(start_time, 'MM/DD/YY HH:MI') AS start_date, id from LOG_TABLE)
SELECT start_date, COUNT (id) as ProcessCount
FROM mainQuery
GROUP BY start_date
order by ProcessCount desc

enter image description here

enter image description here

1 个答案:

答案 0 :(得分:0)

select TO_CHAR(start_time, 'MM/DD/YY HH:MI') AS start_date, count(*) from LOG_TABLE where TO_CHAR(start_time, 'MM/DD/YY HH:MI') in
(select TO_CHAR(start_time, 'MM/DD/YY HH:MI') from LOG_TABLE
where TO_CHAR(start_time, 'MM/DD/YY HH:MI') = TO_CHAR(complete_time, 'MM/DD/YY HH:MI'))
group by start_date;

这是你想要的吗? 以开始时间=完成时间为止所有开始时间,然后从主表中获取这些行的计数。