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

चुनिंदा बयान में मैसकल गणना

आम तौर पर बोलते हुए, एसक्यूएल वास्तव में आपकी इच्छा के अनुसार "चलने वाले योग" उत्पन्न करने का इरादा नहीं था। अन्य RDBMS ने विश्लेषणात्मक कार्यों को वितरित करने के लिए मालिकाना एक्सटेंशन पेश किया है जो इस प्रकार की गणना को सक्षम करते हैं, लेकिन MySQL में ऐसी सुविधाओं का अभाव है।

इसके बजाय, मोटे तौर पर एक के पास चार विकल्प होते हैं। किसी विशेष क्रम में नहीं:

  1. जैसे ही आप परिणामसेट पर लूप करते हैं, अपने एप्लिकेशन में एक रनिंग टोटल जमा करें;

  2. अपने डेटाबेस के भीतर चल रहे कुल का ट्रैक रखने के लिए अपनी स्कीमा को बदलें (विशेष रूप से इस तरह की स्थितियों में अच्छा है, जहां नया डेटा केवल "अंत तक" जोड़ा जाता है);

  3. समूह में स्वयं शामिल हों:

    SELECT   a.Sale_Date,
             SUM(a.Stock_Delivered)                AS Stock_Delivered,
             SUM(a.Units_Sold)                     AS Units_Sold,
             SUM(b.Stock_Delivered - b.Units_Sold) AS `Stock Balance`
    FROM     sales_report a
        JOIN sales_report b ON b.Sale_Date <= a.Sale_Date
    GROUP BY a.Sale_Date
    
  4. रनिंग टोटल को यूजर वेरिएबल में जमा करें। :

    SELECT   Sale_Date,
             Stock_Delivered,
             Units_Sold,
             @t := @t + Stock_Delivered - Units_Sold AS `Stock Balance`
    FROM     sales_report, (SELECT @t:=0) init
    ORDER BY Sale_Date
    


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. NULLs रखते हुए कई तालिकाओं में शामिल हों

  2. MySQL में टेबल कॉपी कैसे करें

  3. ImportError:MySQLdb नाम का कोई मॉड्यूल नहीं

  4. डॉकर का उपयोग करने पर मुझे त्रुटि मिलती है:SQLSTATE [HY000] [2002] ऐसी कोई फ़ाइल या निर्देशिका नहीं

  5. MySQL में सीरियलाइज्ड डेटा से बचना और सम्मिलित करना