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

ग्रुप बाय के साथ एक MySQL क्वेरी के साथ न्यूनतम और अधिकतम मान प्राप्त करें

ऐसा लगता है कि आप संख्यात्मक संग्रहित कर रहे हैं स्ट्रिंग्स के रूप में मान। आपको वास्तव में डेटा को ठीक करना चाहिए। लेकिन, आप क्वेरी को ठीक कर सकते हैं। मेरी राय में, सबसे सरल तरीका निहित रूपांतरण है:

SELECT MIN(`temp_min` + 0) AS `temp_min`,
       MAX(`temp_max` + 0) AS `temp_max`,
       `dt_txt`, DAYNAME(`dt_txt`) AS `dayname`,
       `pressure`, `condition`, `dt_txt`
FROM infoboard.forecasts
WHERE `dt_txt` >= CURDATE()
GROUP BY `dt_txt`
ORDER BY `dt_txt` ASC;

ध्यान दें कि pressure और condition आपके GROUP BY . में नहीं हैं , इसलिए मान मनमानी पंक्तियों से चुने जाते हैं। यह वास्तव में एक खराब अभ्यास है, और इसका मतलब है कि आपकी क्वेरी लगभग किसी भी अन्य डेटाबेस में काम नहीं करेगी।

आप कुछ ऐसा करके डेटा को ठीक कर सकते हैं:

alter table infoboard.forecasts
    modify column temp_min decimal(6, 3),
    modify column temp_max decimal(6, 3);

मुझे संदेह है कि आप pressure . के लिए भी ऐसा ही करना चाहेंगे साथ ही।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. मैं पायथन में डेटाबेस से CSV फ़ाइल कैसे बनाऊँ?

  2. जेपीए:मैं डेटाबेस फ़ील्ड में स्ट्रिंग को कैसे जारी रखूं, MYSQL टेक्स्ट टाइप करें

  3. डॉकर-लिखें:हर बार MySQL डीबी को फिर से शुरू करना

  4. जब INSERT ट्रिगर को संसाधित किया जाता है तो कैसे innodb टेबल लॉक हो जाते हैं?

  5. PHP और MySQL डेटाबेस का उपयोग करके टू-डू सूची एप्लिकेशन