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

एसक्यूएल:उन पंक्तियों का चयन कैसे करें जो निश्चित मूल्य तक योग करते हैं

आप रनिंग टोटल प्राप्त करने के लिए एक सहसंबद्ध सबक्वेरी का उपयोग कर सकते हैं और उन पंक्तियों को पुनः प्राप्त कर सकते हैं जिनका रनिंग टोटल <एक निर्दिष्ट संख्या है। (ध्यान दें कि मैंने स्टोरेज कॉलम को int . में बदल दिया है . अगर यह एक varchar है तुलना गलत परिणाम देगी)

select id,user_id,storage
from uploads t
where storage+coalesce((select sum(storage) from uploads 
                        where storage<t.storage),0) < 410000
order by storage

SQL Fiddle

संपादित करें:जब स्टोरेज कॉलम में डुप्लिकेट मान होते हैं, तो इसे id के लिए एक शर्त शामिल करके रनिंग योग में शामिल किया जाना चाहिए। कॉलम। (इस मामले में < कंडीशन का इस्तेमाल किया गया है, इसलिए डुप्लीकेट स्टोरेज वैल्यू के लिए सबसे छोटी आईडी पिक हो जाती है)

select id,user_id,storage
from uploads t
where storage+coalesce((select sum(storage) from uploads 
                        where storage<t.storage 
                        or (storage=t.storage and id < t.id)),0) < 410000
order by storage


  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. PHP MySQL - तैयार कथन में डिफ़ॉल्ट मान कैसे सम्मिलित करें

  3. MySQL:मूल्य प्राथमिकताओं द्वारा कॉलम प्राप्त करना

  4. इंडेक्स पर MySQL regexp

  5. बार-बार कुंजियों का Mysql group_concat और 1 क्वेरी (क्वेरी ऑप्टिमाइज़ेशन) में कई स्तंभों की पुनरावृत्ति की संख्या