MySQL5.7 两表关联不分组展示每个item对应group的总数量
MySQL 5.7 分组统计实现方案
直接使用嵌套子查询统计分组总数后关联即可,以下是可运行的SQL语句:
SELECT t1.item_id, t2.group_id, g.group_count AS number_in_group FROM table_1 t1 INNER JOIN table_2 t2 ON t1.item_id = t2.item_id INNER JOIN ( -- 先统计每个group_id对应的总条目数 SELECT group_id, COUNT(*) AS group_count FROM table_2 GROUP BY group_id ) g ON t2.group_id = g.group_id ORDER BY t1.item_id;
原失败方案错误原因
- 按group_id分组的子查询方案错误点:子查询返回结果的关联键应为
group_id,之前用item_id做关联,只能匹配到每个分组的第一条记录,因此仅首行展示统计值 - 按item_id分组的子查询方案错误点:分组粒度不符合需求,需要统计的是
group_id维度的总数,按item_id分组自然每个条目的统计值都为1
内容的提问来源于stack exchange,提问作者DaDe
相关产品推荐
相关产品推荐

