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

MySQL में एक ही कॉलम में दो मानों के बीच अंतर ढूँढना

ठीक है, घर आ गया, और इसका पता लगा लिया।

SELECT stock_id, t1.price AS `then`, t2.price AS `now`, ROUND(t2.price - t1.price, 2) AS `difference`
FROM (
        SELECT stock_id, price, date FROM share_prices sp
        WHERE  date = (SELECT MIN(date) FROM share_prices sp2
                       WHERE date BETWEEN '2010/02/23 10:00:00'
                       AND '2010/02/24 10:00:00'
                       AND sp2.stock_id = sp.stock_id)
    ) t1
    JOIN
    (
        SELECT stock_id, price, date FROM share_prices sp
        WHERE  date = (SELECT MAX(date) FROM share_prices sp2
                       WHERE date BETWEEN '2010/02/23 10:00:00'
                       AND '2010/02/24 10:00:00'
                       AND sp2.stock_id = sp.stock_id)
    ) t2 USING(stock_id)
ORDER BY `difference` DESC

2 उपश्रेणियों के परिणामों का उपयोग करता है, प्रत्येक की अपनी उपश्रेणी के साथ क्रमशः पहली और अंतिम, उस श्रेणी के लिए रिकॉर्ड होती है।

मैं integer का उपयोग कर रहा था stock_id . के लिए , float price . के लिए और timestamp तारीख के लिए, क्योंकि अन्य डेटा प्रकारों के साथ (विशेषकर MIN और MAX के साथ) समस्याएँ हो सकती हैं।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. डोमेन स्वामित्व कैसे सत्यापित करें

  2. SQL के साथ MySQL डेटाबेस में पहले या अंतिम कुछ वर्णों को निकालें या ट्रिम करें

  3. MySQL UTF-8 कैरेक्टर इंसर्ट इश्यू

  4. MySQL में एक को छोड़कर सभी डुप्लिकेट पंक्तियां हटाएं?

  5. MySQL [संग्रहीत प्रक्रिया] से [अस्थायी तालिका] में कैसे प्रवेश करें