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

MySQL क्वेरी प्रदर्शन बढ़ाना - गणित भारी क्वेरी

मुझे लगता है कि यह आपको वह मिलेगा जो आप चाहते हैं, हालांकि एक रोलिंग तिथि सीमा के साथ आप चिंतित हैं ... मैंने पहचान किए गए दो कॉलम के साथ अपनी खुद की "चालान" तालिका बनाकर परीक्षण किया है। यह वास्तव में @ mySQL चर के उपयोग के साथ काफी सरल था जिसका उपयोग क्वेरी में इनलाइन किया जा सकता है ... केवल एक चीज है, अब यह जानने का सही तरीका है कि "ओपनिंग" बैलेंस क्या है, इसलिए मैंने प्रारंभिक सेट किया है शून्य का स्टार्टअप मान फिर उसमें से समायोजित करें।

किकर "प्रीएग" क्वेरी है जिसे केवल इन/आउट की तारीख से एकत्रित करने के लिए है। फिर, उस परिणाम को दिनांक क्रम में क्रमित करके, @ sql चर प्रारंभ हो जाता है।

select
      PreAgg.PostDate,
      @PrevBal as BegBal,
      PreAgg.OutFlows,
      PreAgg.InFlows,
      @PrevBal := @PrevBal + PreAgg.OutFlows + PreAgg.InFlows as EndBal
   from 
      ( select
              i.postdate,
              sum( if( i.amount < 0, i.amount, 0 ) ) as OutFlows,
              sum( if( i.amount > 0, i.amount, 0 ) ) as InFlows
           from 
              invoice i
           where
              i.postdate between date_sub( now(), interval 2 month )
                             and date_add( now(), interval 1 month )
           group by
              i.postdate
           order by 
              i.postdate ) as PreAgg,
      ( select @PrevBal := 0.00 ) as SqlVars

हालांकि, भले ही मैंने 3 महीने की विंडो (-2 महीने, +1 महीने) दी है, मुझे नहीं लगता कि यह वास्तव में समझ में आता है क्योंकि भविष्य की पोस्टिंग अभी तक नहीं हुई होगी ... और क्या महत्वपूर्ण हो सकता है बस

       where
          i.postdate > date_sub( now(), interval 3 month )

जो वर्तमान दिनांक/समय से अंतिम 3 महीने प्राप्त करेगा।



  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 और MongoDB के बीच डेटा सिंक्रोनाइज़ेशन

  2. PyMySQL क्या है और यह MySQLdb से कैसे भिन्न है? क्या यह Django परिनियोजन को प्रभावित कर सकता है?

  3. MySQL कनेक्शन काम नहीं कर रहा:2002 ऐसी कोई फ़ाइल या निर्देशिका नहीं

  4. MySQL:मैं ट्रिगर्स में डिलीमीटर का उपयोग कैसे करूं?

  5. संख्या को 2 दशमलव स्थानों पर प्रारूपित करें