Mysql
 sql >> Base de données >  >> RDS >> Mysql

MySQL :comment obtenir x nombre de résultats par regroupement

Essayez cette requête -

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

Il affichera les 5 premiers éléments par catégorie. Décommentez LIMIT 20 si tu as besoin. Rejoindre Categories table si vous avez besoin.