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

मैं अलग-अलग दिनों के व्यक्तिगत अधिकतम मूल्यों के बीच अंतर कैसे प्राप्त कर सकता हूं?

अद्यतन 1:यहाँ एक पहेली है, http://sqlfiddle.com/#!2/818ad /2 , जिसे मैंने परीक्षण के लिए उपयोग किया था।
अपडेट 2:यहां एक बेला है, http://sqlfiddle.com/#!2/3f78d/10 कि मैंने सैंडी की टिप्पणियों के आधार पर और अधिक शोधन/फिक्सिंग के लिए उपयोग किया।
अपडेट 3:किसी कारण से जहां कोई पिछला दिन नहीं है, उस पर सही ढंग से कार्रवाई नहीं की जा रही थी। मैंने सोचा की ये। हालांकि, मैंने यह सुनिश्चित करने के लिए अद्यतन किया है कि यह काम करता है (थोड़ा बोझिल - लेकिन यह सही प्रतीत होता है। अंतिम पहेली:http://sqlfiddle.com/#!2/3f78d/45

मुझे लगता है कि @Grijesh ने अवधारणात्मक रूप से आपको इनपुट डेटा के स्वयं-जुड़ने के माध्यम से आवश्यक मुख्य चीज़ प्राप्त की है (इसलिए सुनिश्चित करें कि आप उसका जवाब वोट दें!) मैंने उनकी क्वेरी को सिंटैक्स पर थोड़ा सा साफ़ कर दिया है (उनकी क्वेरी का निर्माण!):

SELECT
DATE(t1.`Production_date`) as theDate,
MAX( t1.`bundle_count` ) AS  'max(bundle_count)',
MAX( t1.`bundle_count` ) - 
    IF(
       EXISTS
           (
            SELECT date(t2.production_date)
            FROM input_example t2
            WHERE t2.machine_no = 1 AND 
                  date_sub(date(t1.production_date), interval 1 day) = date(t2.production_date)
        ),
        (
            SELECT MAX(t3.bundle_count)
            FROM input_example t3
            WHERE t3.machine_no = 1 AND 
                  date_sub(date(t1.production_date), interval 1 day) = date(t3.production_date)
            GROUP BY DATE(t3.production_date)
        ),          0
    )
    AS Total_Bundles_Used
FROM  `input_example` t1
WHERE t1.machine_no = 1
GROUP BY DATE( t1.`production_date` )      

नोट 1:मुझे लगता है कि @Grijesh और मैं एक ही समय में क्वेरी सिंटैक्स मुद्दों को साफ कर रहे थे। यह उत्साहजनक है कि जब हम दोनों सफाई कर रहे थे तब हमने बहुत समान संस्करणों के साथ समाप्त किया। मेरा संस्करण IFNULL() . का उपयोग करने में भिन्न है जब कोई पूर्ववर्ती डेटा नहीं है। मैंने DATE_SUB . के साथ भी समाप्त किया , और मैंने DATE() . के माध्यम से विभिन्न तिथियों को बिना समय घटक के केवल तिथियों तक कम करना सुनिश्चित किया है

नोट 2:मैं मूल रूप से आपकी स्रोत तालिकाओं को पूरी तरह से नहीं समझ पाया था, इसलिए मैंने सोचा कि मुझे क्वेरी में चल रही गणना को लागू करने की आवश्यकता है। लेकिन बेहतर निरीक्षण करने पर, यह स्पष्ट है कि आपके स्रोत डेटा की संख्या पहले से ही चल रही है, इसलिए मैंने वह सामान वापस ले लिया।



  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. केस संवेदनशील तालिका नामों को कैसे बल दें?

  3. MySQL में दो कॉलम की तुलना कैसे करें

  4. #1064 - आपके SQL सिंटैक्स में त्रुटि है; अपने MySQL सर्वर संस्करण से संबंधित मैनुअल की जाँच करें

  5. मैसकल:डेटाबेस में सभी क्षेत्रों को ट्रिम करें