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

एसक्यूएल:कुल योग को उप-चयन के रूप में बहुत धीमी गति से प्राप्त करना

उन सभी क्षेत्रों पर समूह बनाने के बजाय, एक सरल (और तेज़) समाधान (यहां ) हो सकता है:

GROUP BY UNIX_TIMESTAMP(timestamp_local)/3600

मैं कल्पना नहीं कर सकता कि आपकी क्वेरी आपके इच्छित परिणाम लौटाती है (यदि मैं आपकी आवश्यकताओं को सही ढंग से समझता हूं)। मैं आपकी आवश्यकताओं को समझता हूं, जब किसी दिए गए घंटे के लिए कोई पंक्तियाँ नहीं होती हैं, तो आप घंटे के साथ सभी पंक्तियों के योग की गणना करना चाहते हैं। MySQL खाली ग्रुपिंग (उप-क्वेरी भाग के लिए) का चयन नहीं करेगा।

MySQL में ऐसा करने का कोई आसान प्रभावी तरीका नहीं है जिसे मैं जानता हूं, मैं उस सीमा में सभी संभावित समूह मूल्यों के साथ एक अस्थायी तालिका बनाने का सुझाव दूंगा जो आप देख रहे हैं (शायद एक लूप के साथ)। आप संभवतः इस तालिका को कुछ वर्षों के लिए पहले से सेट कर सकते हैं, और संभवतः आवश्यकतानुसार पंक्तियाँ जोड़ सकते हैं। तब आप बस इस तालिका और अपनी तालिका में शामिल हो सकते हैं।

यदि आप एमएसएसक्यूएल का उपयोग कर रहे थे, तो आप एक रिकर्सिव सीटीई का उपयोग कर सकते थे, हालांकि यह शायद बहुत धीमा होता। यह देखें या MySQL विकल्पों के लिए Google "mysql cte"। रिकर्सन के साथ ऐसा करने का तरीका HOUR = HOUR+1 के लिए एक ही टेबल पर बार-बार शामिल होना है (बाएं) जब तक आपको एक गैर-शून्य मान न मिल जाए, तब तक रुकें। इनमें से प्रत्येक के लिए आप पिछली राशि की गणना करेंगे।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PHP का उपयोग करके एक्सेल या सीएसवी को MySQL डेटा बेस पर कैसे अपलोड करें?

  2. MySQL डेटाबेस सेवा - नई हीटवेव इनोवेशन

  3. मैं दो पंक्तियों की तुलना कैसे करूं और दो पंक्तियों की समानता को दूसरे कॉलम में कैसे संग्रहीत करूं?

  4. MySQL संग्रहीत कार्यविधि बदलें 'डेटाबेस Collation' नाम

  5. MySql डेटा का उपयोग करके JTable में कोई आउटपुट दिखाने में असमर्थ