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

Nhóm truy vấn theo cặp kết quả cột

Bạn có thể làm điều đó với một phép nối bên trái và sau đó trừ đi 2 ngày:

select 
  t.id, 
  t.action_date login_date, tt.action_date logout_date,
  t.user_id,
  (tt.action_date - t.action_date) / 100 session_time
from (
  select * from session where status = 'LOGIN'  
) t left join (
  select * from session where status = 'LOGOUT'    
) tt on tt.user_id = t.user_id and 
  tt.action_date = (
    select min(action_date) from session
    where status = 'LOGOUT' and user_id = t.user_id and action_date > t.action_date
  )

Xem bản trình diễn .
Kết quả:

| id  | login_date          | user_id | logout_date         | session_time |
| --- | ------------------- | ------- | ------------------- | ------------ |
| 1   | 2019-07-16 07:06:55 | Bob     | 2019-07-16 07:29:13 | 22.58        |
| 3   | 2019-07-16 07:30:31 | Bob     | 2019-07-16 07:49:50 | 19.19        |
| 5   | 2019-07-16 08:05:55 | Tom     | 2019-07-16 08:15:13 | 9.58         |
| 7   | 2019-07-16 09:13:55 | John    | 2019-07-16 09:20:13 | 6.58         |



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Đặt trang web Django / MySQL để sử dụng UTF-8

  2. PDO “Uncaught exception 'PDOException' .. Không thể thực thi các truy vấn trong khi các truy vấn không có bộ đệm khác đang hoạt động. Cân nhắc sử dụng PDOStatement ::fetchAll (). ”

  3. Cách giám sát cơ sở dữ liệu MySQL / MariaDB bằng Netdata trên CentOS 7

  4. Laravel 4:Làm thế nào để áp dụng điều kiện WHERE cho tất cả các truy vấn của một lớp Eloquent?

  5. MySQL Deadlock với một phần chèn làm tăng kích hoạt