MySQL और विंडो फ़ंक्शन


30

ऐसा लगता है कि MySQLखिड़की के कार्यों का समर्थन नहीं करता है।
उदा सरल: COUNT(*) OVER() AS cntकाम नहीं करता है।
मुझे यकीन नहीं है कि क्या यह वाणिज्यिक संस्करण पर भी लागू होता है (मुझे लगता है कि समुदाय संस्करण सीमित सबसेट है)।
यदि नहीं, तो इस गुम सुविधा के आसपास कोई कैसे काम करता है?


3
MySQL सर्वर का सामुदायिक संस्करण किसी भी अर्थ में सीमित उपसमूह नहीं है। अंतर ऐड-ऑन और प्लगइन्स में हैं जो कोर कार्यक्षमता को प्रभावित नहीं करते हैं।
माइकल - sqlbot 5

इस वर्कअराउंड को यहाँ और यहाँ देखें
स्टुअर्टएलसी

दरअसल, MySQL9 इसका समर्थन करता है। मैं पंडों का इस्तेमाल कर रहा हूं बजाय इसके कि किस तरह का चूसो।
एंड्रयू स्कॉट इवांस

1
MySQL 8 विंडो फ़ंक्शन का समर्थन करता है। संदर्भ के लिए: dev.mysql.com/doc/refman/8.0/en/window-functions.html
gvgvgvijayan

MySQL संस्करण 8.0 के बाद से विंडो कार्यों का समर्थन करता है। यह लिंक मदद कर सकता है।
हामिद मोहाजी

जवाबों:


36

MySQL विंडो फंक्शंस (*) का समर्थन नहीं करता है। वहाँ है जिसे हम GROUP_CONCAT () के रूप में "एक गरीब आदमी का विंडो फ़ंक्शन" कहते हैं ।

GROUP_CONCATविंडो फ़ंक्शंस का अनुकरण करने के लिए बहुत सारे ट्रिक हैं। वे बहुत सुंदर नहीं हैं (सिंटैक्टिक रूप से) और कभी-कभी बहुत सीमित होते हैं। मैंने कुछ लिखा है। लापता विंडो फ़ंक्शंस के बारे में शिकायत करने वाली मेरी ब्लॉग पोस्ट देखें , और विभिन्न समाधानों के आधार पर लिंक करना GROUP_CONCAT

विशेष रूप से, ग्रुप BY और एसक्यूएल में एक विशिष्ट नॉन एग्रीगेटेड कॉलम डेटा का चयन करना: प्रति समूह में शीर्ष एन रिकॉर्ड्स का चयन करना, एक और समाधान आपके लिए दिलचस्पी का हो सकता है और आपको एक किक स्टार्ट दे सकता है।

जिन बातों पर आपको ध्यान देना चाहिए GROUP_CONCAT():

  • इस्तेमाल कर सकते हैं DISTINCT
  • इस्तेमाल कर सकते हैं ORDER BY ... ASC/DESC
  • सेट कर सकते हैं SEPARATOR
  • किसी भी एकत्रीकरण समारोह के रूप में - यह NULL मानों को रोकता है; उस पर बहुत चाल।

(*) MySQL 8 में विंडो फ़ंक्शंस के लिए समर्थन जोड़ा गया है


MySQL विंडो के वर्जन 8
Max

GROUP_CONCAT एक विंडो फ़ंक्शन नहीं है, यह एक ऑर्डर किया गया सेट फ़ंक्शन है।
SQLRaptor

1
@ SQLRaptor किसी ने दावा नहीं किया कि यह है।
ypercube y

11

यह वास्तव में ध्यान दिया जाना चाहिए कि MariaDB 10.2 (2017 मई में जारी) में विंडो फ़ंक्शन हैं । यदि आप MySQL और विंडो फ़ंक्शंस की आवश्यकता रखते हैं, तो निश्चित रूप से इसे आगे बढ़ाने का एक अवसर है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.