sql - SUM for each row and filter result SUM IN $x -


पोस्टग्रेज़ में मेरी तालिका का डेटा:

  आईडी user_id sell_amount sell_currency_id buy_amount buy_currency_id प्रकार की स्थिति date_add 5 2 2.00000000 1 4.00000000 0 0 0 2013-12-15 19:06:40 6 3 2.60000000 1 5.10000000 0 0 0 2013-12-15 19:06:54 4 1 1.00000000 1 0.80000000 0 0 2013-12-15 19: 07:05 7 4 4.00000000 1 8.20000000 0 0 0 2013-12-15 19:07:21 8 5 3.00000000 1 6.00000000 0 1 0 2013-12-15 19:07:40  

मुझे इस तालिका से status = 0 id , user_id , sell_amount , sell_currency_id का चयन करना होगा, / कोड> और प्रकार = 0 और SUM वर्तमान पंक्ति में IN $ x, आदेश ORDER BY buy_amount / sell_amount ASC , date_add asc

परिणाम $ x = 6

  आईडी user_id sell_amount sell_currency_id SUM (sell_amount) के लिए परिणाम 4 1 1.00000000 1 1.00000000 6 3 2.60000000 1 3.60000000 5 2 2.00000000 1 5.60000000 7 4 4.00000000 1 9.60000000  

<पी > आपको संचयी राशि की आवश्यकता है, जो पोस्टग्रेर्स ऑफ़र करती है। तर्क तो थोड़ा मुश्किल है। आप पहले मान चाहते हैं जो $ x के बराबर या बराबर है तालिका से cumsell के रूप में (आईडी / buy_amount / sell_amount ASC, date_add एएससी द्वारा आदेश) से अधिक आईडी (id), user_id, sell_amount, sell_currency से (चुनें आईडी, user_id, sell_amount, sell_currency, राशि (sell_amount) से अधिक राशि चुनें जहां स्थिति = 0 और प्रकार = 0) टी जहां $ x & lt; = cumsell और $ x & gt; Cumsell - sell_amount;

Comments