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

भेजे गए संदेश पर प्रतिक्रिया समय जांचें - केवल SQL का उपयोग करने के साथ संभव है?

select t1.*, min(t2.msg_date) as response_date 
from mytable t1 join mytable t2 
      on t1.msg_sender=t2.msg_receiver and t2.msg_sender=t1.msg_receiver and t2.msg_date>t1.msg_date
group by t1.msg_sender,t1.msg_receiver,t1.msg_date 

t1 में प्रत्येक संदेश के लिए हमें t1 संदेश के बाद भेजे गए संबंधित उत्तर मिलते हैं और उन्हें न्यूनतम प्रतिक्रिया तिथि (पहली उत्तर तिथि) प्राप्त करने के लिए समूहित करते हैं।

उपरोक्त चयन को एक सबक्वेरी में रखें और प्रतिक्रिया_तिथि का औसत खोजें - msg_date

अद्यतन करेंआपने गलत तालिका m2 का उपयोग किया है।* मैंने m1 से बदल दिया है।* और परिणाम हैं

SELECT
    AVG(UNIX_TIMESTAMP(response_date) - UNIX_TIMESTAMP(msg_date)),
    AVG(response_date - msg_date)
FROM
(SELECT
    m1.*,
    min(m2.msg_date) as response_date 
FROM
    edu_messages m1
JOIN
    edu_messages m2 ON m1.msg_sender = m2.msg_receiver AND m2.msg_sender = m1.msg_receiver AND m2.msg_date > m1.msg_date 
GROUP BY
    m1.msg_sender,
    m1.msg_receiver,
    m1.msg_date) AS table1



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. मैसकल:चुनिंदा स्टेटमेंट के भीतर इनलाइन टेबल बनाएं?

  2. MySQL कॉलम NULL पर सेट है लेकिन फिर भी NULL मानों की अनुमति देता है

  3. पोस्ट करें और उसी समय php . में प्राप्त करें

  4. SQL सर्वर कर्सर को MySQL समकक्ष में कैसे बदलें

  5. SQL कथन Intellij और DB नेविगेटर का उपयोग करके जावा कोड में त्रुटि