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

X समूहों में महानतम N रिकॉर्ड का चयन करना

SELECT catX.category
       catX.interest
       t1.user_id
       t1.score
FROM 
    ( SELECT category 
           , interest 
      FROM tableX 
      WHERE user_id = @user_id_we_are_interested_in     --- specific user 
      ORDER BY interest DESC
      LIMIT @X                         --- top @X categories per specific user 
    ) AS catX 
  JOIN 
    tableX AS t1 
      ON t1.category = catX.category 
  LEFT JOIN 
    tableX AS t2 
      ON  t2.category = t1.category 
      AND t2.score > t1.score 
  GROUP BY t1.category
         , t1.user_id
  HAVING COUNT(t2.score) < @N                      --- top @N users per category 
  ORDER BY catX.interest DESC 
         , t1.score DESC 


  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 - MySQL UPDATE या SELECT क्वेरियों में इफ तो एल्स का उपयोग करना

  2. एक MySQL डेटाबेस को असामान्य करने का एक अच्छा तरीका क्या है?

  3. MYSQL डाई में डिव लगाएं

  4. Informix के साथ हाइबरनेट क्वेरी समस्या

  5. क्या store_result और get_result को एक साथ चलाने का कोई तरीका है?