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

SUM(users_count) 1000 . तक पहुंचने तक चयन करने के लिए एक SQL क्वेरी

यह समाधान एक संचयी योग का प्रदर्शन करेगा, जब योग 1000 से अधिक हो जाएगा:

SELECT NULL AS users_count, NULL AS total
  FROM dual
 WHERE (@total := 0)
 UNION
SELECT users_count, @total := @total + users_count AS total
  FROM messages_queue
 WHERE @total < 1000;

इसका मतलब है कि अगर आपके पास दो मान हैं, जैसे कि, 800, तो कुल योग 1600 होगा। पहला चयन केवल @total को इनिशियलाइज़ करना है। चर।

यदि आप राशि को 1000 से अधिक होने से रोकना चाहते हैं, उन मामलों के अलावा जहां एक पंक्ति का मान 1000 से अधिक है, तो मुझे लगता है कि यह काम करता है, हालांकि आपको इसे कुछ कठोर परीक्षण के अधीन करने की आवश्यकता होगी:

SELECT NULL AS users_count, NULL AS total, NULL AS found
  FROM dual
 WHERE (@total := 0 OR @found := 0)
 UNION
SELECT users_count, @total AS total, @found := 1 AS found
  FROM messages_queue
 WHERE (@total := @total + users_count)
   AND @total < 1000
 UNION
SELECT users_count, users_count AS total, 0 AS found
  FROM messages_queue
 WHERE IF(@found = 0, @found := 1, 0);


  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 टेबल से डेटा कैसे पुनर्प्राप्त करें?

  2. जावा का उपयोग करके SSH के माध्यम से दूरस्थ MySQL डेटाबेस से कनेक्ट करें

  3. mysql तालिका में एक फारसी पाठ डालें

  4. SQL - किसी अन्य तालिका से गणना का उपयोग करके ऑर्डर कैसे करें

  5. एक ही डेटाबेस में एकाधिक MySQL तालिकाओं को मैप करने के लिए कॉन्फ़िगरेशन फ़ाइल (.cfg.xml) को हाइबरनेट करें?