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

MySQL:N पंक्तियों का चयन करें, लेकिन एक कॉलम में केवल अद्वितीय मानों के साथ

शायद सबसे सुंदर समाधान नहीं, और IN . का प्रदर्शन बड़े टेबल पर नुकसान हो सकता है।

नेस्टेड क्वेरी को न्यूनतम Birthyear मिलता है प्रत्येक शहर के लिए। केवल वही रिकॉर्ड करते हैं जिनके पास यह Birthyear है बाहरी क्वेरी में मेल खाते हैं। उम्र के अनुसार आदेश देने पर 3 परिणामों तक सीमित करने से आपको 3 सबसे पुराने लोग मिलते हैं जो अपने शहर के सबसे पुराने भी हैं (एगॉन स्पेंगलर ड्रॉप आउट..)

SELECT Name, City, Birthyear, COUNT(*) AS ct
FROM table
WHERE Birthyear IN (SELECT MIN(Birthyear)
               FROM table
               GROUP by City)
GROUP BY City
ORDER BY Birthyear DESC LIMIT 3;

+-----------------+-------------+------+----+
| name            | city        | year | ct |
+-----------------+-------------+------+----+
| Henry Jones     | Chicago     | 1899 | 1  |
| Mac Taylor      | New York    | 1955 | 1  |
| Sarah Connor    | Los Angeles | 1959 | 1  |
+-----------------+-------------+------+----+

संपादित करें - जोड़ा गया GROUP BY City बाहरी क्वेरी के लिए, क्योंकि समान जन्म वर्ष वाले लोग कई मान लौटाएंगे। बाहरी क्वेरी पर समूहीकरण यह सुनिश्चित करता है कि प्रति शहर केवल एक परिणाम लौटाया जाएगा, यदि एक से अधिक व्यक्तियों के पास वह न्यूनतम Birthyear है . ct कॉलम दिखाएगा कि शहर में उस Birthyear . के साथ एक से अधिक व्यक्ति मौजूद हैं या नहीं



  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 सिंटैक्स?

  2. मेमोरी डेटाबेस और डिस्क मेमोरी डेटाबेस के बीच अंतर

  3. मैक ओएस शेर पर कमांड लाइन से MySQL सर्वर कैसे शुरू करें?

  4. एसक्यूएल ऐरे सर्च

  5. जहां और या . का उपयोग करके हटाएं