阅读 768

MySQL 中使用 GROUP BY 对后分组的数据进行 COUNT() 统计

SELECT id,title FROM tb_item GROUP BY id


SELECT id,title,count(*) AS counter FROM tb_item GROUP BY id

counter 实际上是每组的计数


统计分组后的数据,应该使用这样的子查询:

select count(*) from (select count(*) FROM service GROUP BY name,service) t


实例:

var replacements = {tags:"11,12,13"}var sql = `
    SELECT id,tags,title,r.* FROM tb_item AS i
    LEFT JOIN tb_item_tag_relation AS r 
    ON r.item_id = i.id
    WHERE r.tag_id IN (:tags)
    GROUP BY i.id
    ORDER BY id DESC
    LIMIT 10
  `;var replacements = { tags: currentTags };var res = await db.query(sql, { type: db.QueryTypes.SELECT, raw: true, replacements });

sql = `
    SELECT COUNT(id) AS count FROM(
        SELECT id FROM tb_item AS i
        LEFT JOIN tb_item_tag_relation AS r 
        ON r.item_id = i.id
        WHERE r.tag_id IN (:tags)
        GROUP BY i.id
    ) t
  `;
res = await db.query(sql, { type: db.QueryTypes.SELECT, raw: true, replacements });


文章分类
后端
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐