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

विशिष्ट उपयोगकर्ता सत्रों की सूची में से प्रारंभिक तिथि और समय का चयन करें

यह "महानतम-एन-प्रति-समूह" समस्या का एक रूपांतर है जो स्टैक ओवरफ्लो पर प्रति सप्ताह कई बार आता है।

SELECT 
        a1.accessid, 
        a1.date, 
        a1.time 
FROM 
        accesslog a1
LEFT OUTER JOIN
        accesslog a2
  ON (a1.accessid = a2.accessid AND a1.userid = a2.userid
    AND (a1.date > a2.date OR a1.date = a2.date AND a1.time > a2.time))
WHERE a1.userid = '1234'
  AND a2.accessid IS NULL;

जिस तरह से यह काम करता है वह यह है कि हम एक पंक्ति (ए 2) को खोजने का प्रयास करते हैं जिसमें एक ही एक्सेसिड और उपयोगकर्ता आईडी है, और पंक्ति ए 1 की तुलना में पहले की तारीख या समय है। जब हमें पहले वाली पंक्ति नहीं मिलती है, तो a1 को होना . होना चाहिए सबसे पहली पंक्ति।

अपनी टिप्पणी दें, मैंने आपके द्वारा प्रदान किए गए नमूना डेटा के साथ अभी कोशिश की है। यहाँ मुझे क्या मिलता है:

+----------+------------+----------+
| accessid | date       | time     |
+----------+------------+----------+
|        1 | 2009-08-15 | 01:01:01 | 
|        2 | 2009-09-01 | 14:01:01 | 
+----------+------------+----------+

मैं मैक ओएस एक्स पर MySQL 5.0.75 का उपयोग कर रहा हूं।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL:किसी अन्य तालिका से एक कॉलम में मान डालें

  2. mysql तालिका में कॉलम का आकार कैसे प्राप्त करें?

  3. PHP पृष्ठ कच्चा कोड दिखाता है

  4. अपना खुद का TinyURL बनाना

  5. उन पंक्तियों को कैसे वापस करें जिनमें MySQL में समान कॉलम मान हैं