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

10 मिनट के भीतर लगातार लेन-देन खोजें

तालिका में आपकी तिथियों के प्रारूप के आधार पर, आपको STR_TO_DATE का उपयोग करके उन्हें रूपांतरित करना होगा एक प्रश्न में उनका उपयोग करने के लिए। अगर आपका कॉलम है वास्तव में एक datetime टाइप करें, और वह केवल आपका डिस्प्ले कोड है जो उस प्रारूप को आउटपुट कर रहा है, बस STR_TO_DATE(xxx, '%m/%d/%Y %k:%i') को बदलें। इस क्वेरी में xxx . के साथ ।

एक दूसरे से 10 मिनट के भीतर ऑर्डर खोजने का तरीका user_id पर अपनी तालिका में स्वयं शामिल होना है , order_id और दूसरे आदेश का समय पहले आदेश के समय के भीतर और 10 मिनट बाद:

SELECT t1.user_id, t1.create_time AS order1_time, t2.create_time AS order2_time
FROM transactions t1
JOIN transactions t2 ON t2.user_id = t1.user_id
                    AND t2.order_id != t1.order_id
                    AND STR_TO_DATE(t2.create_time, '%m/%d/%Y %k:%i') BETWEEN
                           STR_TO_DATE(t1.create_time, '%m/%d/%Y %k:%i') 
                       AND STR_TO_DATE(t1.create_time, '%m/%d/%Y %k:%i') + INTERVAL 10 MINUTE

आउटपुट:

user_id     order1_time     order2_time
101         4/2/2018 8:34   4/2/2018 8:37
103         4/2/2018 9:32   4/2/2018 9:36
106         4/2/2018 13:11  4/2/2018 13:18

dbfiddle पर डेमो



  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 सम्मिलित करें

  3. PHP का उपयोग करके MySQL तालिका में XML डेटा डालें

  4. MySQL से Firebase में डेटा माइग्रेट करना

  5. MySQL में एक्सेंट असंवेदनशील खोज क्वेरी