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

अपूर्ण कॉलों की संख्या प्राप्त करने के लिए क्वेरी बनाएं

यहां एक और तरीका है जो सहसंबद्ध उपश्रेणियों या विंडो फ़ंक्शन के बिना काम करता है:

प्रत्येक पंक्ति के लिए w1 , दूसरी पंक्ति खोजने का प्रयास करें w2 उसी call_id और 0 के साथ कॉल पूरा होने का संकेत देता है। LEFT OUTER JOIN का उपयोग करके, हम उन मामलों के लिए परीक्षण कर सकते हैं जहां कोई w2 . नहीं है किसी दिए गए call_id के लिए पंक्ति मौजूद है।

फिर एक और काल्पनिक पंक्ति में शामिल हों w3 समान call_id और कम ast_num_curr मान के साथ। फिर से, बाहरी जुड़ाव का उपयोग करके, हम जांच सकते हैं कि ऐसी कोई पंक्ति मौजूद नहीं है। इसका मतलब है w1 उस call_id के लिए ast num के लिए न्यूनतम मान होना चाहिए।

SELECT w1.call_id, w1.queue_num_curr
FROM waiter_log AS w1
LEFT OUTER JOIN waiter_log AS w2
  ON w1.call_id = w2.call_id AND w2.proceed_wait = 0 
LEFT OUTER JOIN waiter_log AS w3
  ON w1.call_id = w3.call_id AND w1.ast_num_curr > w3.ast_num_curr
WHERE w2.call_id IS NULL AND w3.call_id IS NULL;

आउटपुट:

+---------+----------------+
| call_id | queue_num_curr |
+---------+----------------+
| 49c43ad |           9004 |
| asdf231 |           9010 |
| rete125 |           9010 |
+---------+----------------+

काउंट्स प्रति क्यू_नम_कुर प्राप्त करने के लिए, उपरोक्त क्वेरी को व्युत्पन्न-टेबल सबक्वेरी में लपेटें, और बाहरी क्वेरी में काउंट करें:

SELECT queue_num_curr, COUNT(*) AS count
FROM (
  SELECT w1.call_id, w1.queue_num_curr
  FROM waiter_log AS w1
  LEFT OUTER JOIN waiter_log AS w2
    ON w1.call_id = w2.call_id AND w2.proceed_wait = 0
  LEFT OUTER JOIN waiter_log AS w3
    ON w1.call_id = w3.call_id AND w1.ast_num_curr > w3.ast_num_curr
  WHERE w2.call_id IS NULL AND w3.call_id IS NULL
) AS t
GROUP BY queue_num_curr;

आउटपुट:

+----------------+-------+
| queue_num_curr | count |
+----------------+-------+
|           9004 |     1 |
|           9010 |     2 |
+----------------+-------+


  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. क्या मेरे पास संकुल अनुक्रमणिका के बिना प्राथमिक कुंजी हो सकती है? क्या मेरे पास मल्टीवैल्यूड क्लस्टर इंडेक्स भी हो सकता है?

  3. डॉकर mysql कनेक्शन विफल लिखें

  4. क्या mysql अद्यतन प्रश्नों को किसी अनुक्रमणिका से लाभ होता है?

  5. PDO को mysqli में कैसे बदलें?