Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

कॉलम परिणाम की जोड़ी द्वारा क्वेरी समूह

आप इसे लेफ्ट जॉइन के साथ कर सकते हैं और फिर 2 तारीखों को घटा सकते हैं:

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
  )

डेमो देखें .
परिणाम:

| 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. उपयोगी PHP डेटाबेस वर्ग

  2. पंक्ति कॉपी करें लेकिन नई आईडी के साथ

  3. Laravel . में only_full_group_by विकल्प को कैसे निष्क्रिय करें?

  4. MySQL अगर मौजूद है तो इसमें डालें या फिर कुछ और करें

  5. एक MySQL डेटाबेस में ट्रिगर के साथ कार्य करना - एक ट्यूटोरियल