I also have a similar situation, and created the following search to accomplish what I need:
| stats values(job) AS job, max(_time) AS maxTime, min(_time) AS minTime by jobid
| streamstats current=f window=1 global=f last(maxTime) as last_maxTime by job
| eval _time=minTime
| table _time, job, jobid, minTime, maxTime, last_maxTime
| eval overlapped=if(last_maxTime>=minTime,1,0)
| where overlapped=1
In this case, I use stats, instead of transaction, to get the start and end time of the event (based off jobid, which is a unique id for each event). Then I do a streamstats to get the previous end time to compare to my start time, if the end time of the previous event is >= the current start time, then I set a flag called overlapped, and filter to those.
This does not get a count of the number of events in that event time range, but works for my purposes.
... View more