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

MYSQL क्वेरी nth उच्चतम वेतन वाले सभी कर्मचारियों को खोजने के लिए

आपने पूछा है कि लगता है एक उचित प्रश्न की तरह। SQL में काम करने के अलग-अलग तरीके हैं और कभी-कभी कुछ तरीके दूसरों से बेहतर होते हैं। रैंकिंग की समस्या अनेक, अनेक उदाहरणों में से एक है। आपके प्रश्न का "उत्तर" यह है कि, सामान्य तौर पर, order by group by . से बेहतर प्रदर्शन करने जा रहा है MySQL में। हालांकि यह भी उस विशेष डेटा पर निर्भर करता है और जिसे आप "बेहतर" मानते हैं।

प्रश्न के साथ विशिष्ट मुद्दे यह हैं कि आपके पास तीन अलग-अलग प्रश्न हैं जो तीन अलग-अलग चीजें लौटाते हैं।

पहला सभी कर्मचारियों को "घने रैंक" के साथ लौटाता है जो समान है। उस शब्दावली का उपयोग जानबूझकर किया जाता है क्योंकि यह ANSI dense_rank() से मेल खाती है फ़ंक्शन जो MySQL समर्थन नहीं करता है। इसलिए, यदि आपका वेतन 100, 100, और 10 है, तो यह दो पंक्तियों को 1 की रैंकिंग के साथ और एक को 2 की रैंकिंग के साथ लौटाएगा।

यदि संबंध हैं तो दूसरा अलग परिणाम देता है। यदि वेतन 100, 100, 10 हैं, तो यह संस्करण 1 की रैंकिंग वाली कोई पंक्ति नहीं लौटाएगा, 2 की रैंकिंग वाली दो पंक्तियाँ, और 3 की रैंकिंग वाली एक पंक्ति।

तीसरा एक पूरी तरह से अलग परिणाम सेट देता है, जो सिर्फ वेतन और वेतन की रैंकिंग है।

मेरी टिप्पणी आपके डेटा पर प्रश्नों की कोशिश करने के लिए निर्देशित की गई थी। वास्तव में, आपको यह तय करना चाहिए कि आप वास्तव में क्या चाहते हैं, दोनों एक कार्यात्मक और एक प्रदर्शन परिप्रेक्ष्य से।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. उच्चारण चिह्नों, umlauts, आदि वाले शब्दों से मिलान करना। mysql/php

  2. हमें बाएँ और दाएँ जुड़ने की आवश्यकता क्यों है

  3. MySQL में मिसिंग डेट्स कैसे भरें?

  4. PHP स्क्रिप्ट json_encode mysql अनुरोध getJSON () के माध्यम से नहीं जा सकता है

  5. MySQL:रिकॉर्ड के बीच औसत अंतराल