Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

MySQL:como obter x número de resultados por agrupamento


Tente esta consulta -
SELECT item_id, item_name, catid FROM 
  (SELECT t1.*, COUNT(*) cnt FROM items t1
    LEFT JOIN items t2
      ON t2.catid = t1.catid AND t2.item_id <= t1.item_id 
  GROUP BY
    t1.catid, t1.item_id
  ) t
WHERE
  cnt < 6
-- LIMIT 20

Ele mostrará os primeiros 5 itens por categoria. Descomente LIMIT 20 se você precisar. Junte-se a Categories mesa se precisar.