आप रनिंग टोटल प्राप्त करने के लिए एक सहसंबद्ध सबक्वेरी का उपयोग कर सकते हैं और उन पंक्तियों को पुनः प्राप्त कर सकते हैं जिनका रनिंग टोटल <एक निर्दिष्ट संख्या है। (ध्यान दें कि मैंने स्टोरेज कॉलम को 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
संपादित करें:जब स्टोरेज कॉलम में डुप्लिकेट मान होते हैं, तो इसे 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