Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Kết quả nhóm MySQL theo khoảng thời gian

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)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. không thể tăng giới hạn tệp mở trong mariadb 10 trên centos7

  2. Nhận tên cột bảng trong MySQL?

  3. bảng truy vấn mỗi giây để thông báo. Nó có phải là một thực hành tốt?

  4. MySQL Loại bỏ các cột trùng lặp trên Nối trái, 3 bảng

  5. Đếm số lượng truy vấn MySQL được thực thi trên trang