Với ít thông tin trên bảng của bạn, đây không chỉ là một ý tưởng cơ bản đối với bạn, nhưng bạn có thể làm điều gì đó như sau:-
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)
Nhận tất cả các dấu thời gian và tham gia chúng với tất cả các dấu thời gian khác lớn hơn và sử dụng MIN để thu hẹp dấu thời gian đó xuống dấu thời gian lớn nhất tiếp theo. Sau đó, từ đó chọn số lượng có chênh lệch nhỏ hơn 600 giây (giả sử dấu thời gian unix).
CHỈNH SỬA - Nếu bạn muốn giới hạn cho con số 10 phút + khoảng trống trong các sự kiện cho người dùng thì:-
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)