android - SQL query next lowest value -
मेरे पास निम्न तालिका है:
_id मूल्य गैलन ओडोमीटर 1 3.1 9 15 10000 2 3.25 13.2 10200 3 3.24 14.8 10400 4 3.31 15.3 10600 5 3.31 12.8 11000 6 3.2 9 12.9 10800 7 3.32 14.3 10900 8 3.28 15.1 11200 9 3.27 11.7 11400 10 3.21 14.7 11600 मुझे ईंधन की गणना करने की आवश्यकता है मौजूदा ओडोमीटर रीडिंग का उपयोग करके पिछला, और गैलन की मात्रा का उपयोग करके लाभ। मेरी समस्या यह है, यदि ओडोमीटर रीडिंग क्रम में दर्ज नहीं किए गए हैं (या यदि उपयोगकर्ता एक के मान को बदलने के लिए वापस जाता है, तो मैं नए एमपीजी की गणना कैसे करूं?) उदाहरण: < प्री> _id मूल्य गैलन ओडोमीटर 1 3.1 9 10 10000 & lt; - पहले प्रविष्टि में कोई एमपीजी रेटिंग नहीं है क्योंकि पिछला डेटा नहीं है 2 3.25 10 10200 & lt; - 20 एमपीजी, पंक्ति 2 & amp; 1 और 10 गैलन 3 3.24 10 10400 & lt; - 20 एमपीजी पंक्ति 3 और amp के अंतर पर आधारित; 2 और 10 गैलन 4 3.31 10 10600 & lt; - 20 एमपीजी, जो पंक्ति 4 & amp; 3 और 10 गैलन 5 3.31 10 11000 & lt; - यह पंक्ति शुरू में पंक्ति 5 एमएपीजी अंतर 5 & amp; 4 (अभी तक पंक्ति 6 अभी तक नहीं है) 6 3.2 9 10 10800 & lt; - एक बार यह दर्ज हो जाने पर, यह 20 एमपीजी का अंतर 6 & amp; 4 (4 अगले 6 ओडोमीटर पढ़ने के बाद 6) और फिर 10 20 एमपीजी अंतर 5 & amp; 6
मुझे लगता है कि आप यह देख सकते हैं कि मैं इसके साथ कहाँ जा रहा हूं। ओडोमीटर कॉलम से, जब मैं एमपीजी की गणना करता हूं, तो मुझे हमेशा अगले सबसे कम ओडोमीटर पढ़ना चाहिए जो सबसे पिछली प्रविष्टि से होनी चाहिए। कुछ मामलों में, यदि कोई उपयोगकर्ता वापस जाता है और एक का संपादन करता है, या शायद एक को छोड़कर और इसे बाद की तारीख में जोड़ता है, तो इसके लिए समायोजन करने की आवश्यकता होगी।
यह सभी एक एंड्रॉइड ऐप में जा रहा है, लेकिन मैं मुख्य रूप से उत्सुक हूं कि SQL कैसे लिखा जाएगा। मुझे कुछ प्रकार की कथन करने की आवश्यकता हो सकती है और सभी मूल्यों या कुछ और के माध्यम से चलाया जा सकता है?
धन्यवाद
यह आपको उन चीज़ों के लिए अवश्य देना चाहिए जो आपको चाहिए। मुझे आपकी एमपीजी की गणना नहीं समझी, लेकिन इसके पास एक ही पंक्ति पर वर्तमान और पिछले ओडोमीटर और गैलन मान हैं, जो आपको करने की जरुरत है।
select x। * , Y.odometer के रूप में prev_odom, y.gallons के रूप में prev_gallons, (x.odometer - y.odometer) / x.gallons टीबीएल x, tbl y से mpg के रूप में y.odometer = (अधिकतम z.odometer) tbl z से चुनें जहां z.odometer & lt; x.odometer) संघ x *, null, null, null से tbl x जहां आईडी = 1 आदेश 1
एसक्यूएल फिल्ड डेमो: < / मजबूत>
संपादित - पिछले स्टेटमैटिव के जरिए आईडी 2 पर 0 दिखाने के लिए पिछले ओडोमीटर को बदलना था। फिर से संपादित किया गया - इनोपोरेटेड एमपीजी गणना
Comments
Post a Comment