微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

MySQL:如何获得每个分组的x个结果数

如何解决MySQL:如何获得每个分组的x个结果数

试试这个查询-

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

它将显示每个类别的前5个项目。LIMIT 20如果需要,请取消注释。Categories如果需要,请加入表格。

解决方法

我有两个表:

  1. 项目
  2. 分类目录

每个项目都属于一个类别。我想做的是每个类别选择5个项目,但总共说20个项目。

SELECT

   item_id,item_name,items.catid

FROM

   items,categories

WHERE

   items.catid = categories.catid

GROUP BY items.catid LIMIT 0,5 //5 per category group

编辑:如果每个类别有5个以上的项目,则应按item_id(数字值)对其进行排序

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。