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

Mysql समूह डेटा समय के अनुसार

यदि आप एक (या अधिक) कॉलम के आधार पर समूह बना रहे हैं तो आपको अपनी क्वेरी को समझने के लिए सभी गैर-समूहीकृत स्तंभों के लिए कुछ करना होगा।

आपको यह कहना होगा कि आप सभी समूहीकृत मूल्यों के साथ क्या करना चाहते हैं। आमतौर पर SUM(), AVG(), MIN(), MAX(), GROUP_CONCAT()

जैसा कुछ

यदि आप m_from द्वारा समूहीकृत कर रहे हैं, तो आप m_time द्वारा क्रमबद्ध नहीं कर पाएंगे, क्योंकि m_from के सभी रिकॉर्ड एक साथ समूहीकृत किए जाएंगे, और गैर-समूहीकृत मानों के लिए आपको एक मनमाना उत्तर मिलेगा, क्योंकि आपने नहीं किया था निर्दिष्ट करें कि समूह के साथ क्या करना है।

आप शायद m_time के लिए उच्चतम मान प्राप्त करने के लिए MAX(m_time) जैसे समग्र फ़ंक्शन का उपयोग करना चाहते हैं, और फिर उस पर सॉर्ट करना चाहते हैं।

मैं कुछ इस तरह का सुझाव दूंगा।

 SELECT MAX(m_id),m_from, MAX(m_time) as latest FROM messages 
    WHERE m_to='XXX' OR m_from='XXX' 
    GROUP BY m_from 
    ORDER BY latest DESC;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQLAlchemy ORM के साथ बल्क इंसर्ट

  2. MySQL:आप खंड से अद्यतन के लिए लक्ष्य तालिका निर्दिष्ट नहीं कर सकते हैं

  3. ListArray वही रिकॉर्ड सहेज रहा है

  4. MySQL TIMESTAMP से QDateTime मिलीसेकंड के साथ

  5. व्याख्या द्वारा पंक्तियाँ क्यों गिनती () के बराबर नहीं हैं?