Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Wybór największych rekordów N w grupach X

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. Kiedy WSTAWIAM wiele wierszy do tabeli MySQL, czy identyfikatory będą za każdym razem zwiększane o 1?

  2. Rails 2.3.3 - Ustawienie w trybie produkcyjnym

  3. Czy indeksy UNIQUE rozróżniają wielkość liter w MySQL?

  4. MySQL - Wybieranie danych z wielu tabel o tej samej strukturze, ale o różnych danych

  5. Nie znaleziono sterownika Jdbc