Con poca información en sus tablas, esto no es más que una idea básica para usted, pero podría hacer algo como esto:-
SELECT COUNT(*)
FROM
(
SELECT a.TimeStamp AS ThisTimeStamp, MIN(b.TimeStamp) AS NextTimeStamp
FROM SomeTable a
INNER JOIN SomeTable b
ON a.TimeStamp < b.TimeStamp
GROUP BY a.TimeStamp
) Sub1
WHERE Sub1.ThisTimeStamp < (Sub1.NextTimeStamp - 600)
Obtenga todas las marcas de tiempo y únalas con todas las demás marcas de tiempo que sean mayores, y use MIN para reducirlo a la siguiente marca de tiempo más grande. Luego, a partir de eso, seleccione el conteo donde la diferencia es inferior a 600 segundos (suponiendo marcas de tiempo de Unix).
EDITAR:si desea atar la cantidad de intervalos de más de 10 minutos en los eventos para los usuarios, entonces:-
SELECT COUNT(*)
FROM
(
SELECT a.user_id, a.TimeStamp AS ThisTimeStamp, MIN(b.TimeStamp) AS NextTimeStamp
FROM SomeTable a
INNER JOIN SomeTable b
ON a.TimeStamp < b.TimeStamp
AND a.user_id = b.user_id
GROUP BY a.user_id, a.TimeStamp
) Sub1
WHERE Sub1.ThisTimeStamp < (Sub1.NextTimeStamp - 600)