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

MySQL तालिका में दूसरा उच्चतम मान प्राप्त करें

यहाँ एक है जो संबंधों के लिए जिम्मेदार है।

Name    Salary
Jim       6
Foo       5
Bar       5
Steve     4

SELECT name, salary
FROM employees
WHERE salary = (SELECT MAX(salary) FROM employees WHERE salary < (SELECT MAX(salary) FROM employees))

Result --> Bar 5, Foo 5

संपादित करें: मैंने मनोज की दूसरी पोस्ट ली, उसमें बदलाव किया, और इसे थोड़ा और मानवीय पठनीय बना दिया। मेरे लिए n-1 सहज नहीं है; हालांकि, मैं जो मान चाहता हूं उसका उपयोग करना, 2=2nd, 3=3rd, आदि है।

/* looking for 2nd highest salary -- notice the '=2' */
SELECT name,salary FROM employees
WHERE salary = (SELECT DISTINCT(salary) FROM employees as e1
WHERE (SELECT COUNT(DISTINCT(salary))=2 FROM employees as e2
WHERE e1.salary <= e2.salary)) ORDER BY name

Result --> Bar 5, Foo 5


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL ट्रिगर्स को बल्क में कैसे बदलें DEFINER

  2. MySQL प्रदर्शन:MySQL बनाम मारियाडीबी

  3. Python का उपयोग करके BibTex फ़ाइल को डेटाबेस प्रविष्टियों में बदलें

  4. सरणी MySQL और PHP से सम्मिलित क्वेरी बनाएँ

  5. MySQL WHERE IN क्लॉज के साथ इंडेक्स का उपयोग नहीं कर रहा है?