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

MySQL में प्रत्येक समूह के उच्चतम n मान ढूँढना

केवल MySQL के लिए मेरा अन्य उत्तर देखें, लेकिन बहुत तेज़, समाधान।

यह समाधान आपको प्रति लेन कितनी भी शीर्ष पंक्तियाँ निर्दिष्ट करने देता है और किसी भी MySQL "funky" सिंटैक्स का उपयोग नहीं करता है - इसे अधिकांश डेटाबेस पर चलाना चाहिए।

select lane, series
from lane_series ls
group by lane, series
having (
    select count(*) 
    from lane_series
    where lane = ls.lane
    and series > ls.series) < 2 -- Here's where you specify the number of top rows
order by lane, series desc;

टेस्ट आउटपुट:

create table lane_series (lane int, series int);

insert into lane_series values 
(1, 680),
(1, 685),
(1, 688),
(2, 666),
(2, 425),
(2, 775);

select lane, series
from lane_series ls
group by lane, series
having (select count(*) from lane_series where lane = ls.lane and series > ls.series) < 2
order by lane, series desc;

+------+--------+
| lane | series |
+------+--------+
|    1 |    688 |
|    1 |    685 |
|    2 |    775 |
|    2 |    666 |
+------+--------+
4 rows in set (0.00 sec)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. रनटाइम त्रुटि:ऑपरेशनल एरर:(2003, 'उदाहरण के आईपीड्रेस' पर MySQL सर्वर से कनेक्ट नहीं हो सकता है)

  2. GET_FORMAT () उदाहरण – MySQL

  3. कॉलम अपडेट कर रहा है ताकि इसमें पंक्ति की स्थिति हो

  4. चेकबॉक्स इनपुट PHP फॉर्म से एक आईडी MySQL में एकाधिक आइटम डालें

  5. अज्ञात कॉलम जहां क्लॉज