MySQL,如何在group_concat上进行分组?

时间:2013-01-31 17:08:55

标签: mysql group-concat

这是我当前的查询(替换机密数据以及为简单起见删除了where子句):

select a.id, group_concat(v.value) from asset a, values v where a.id=v.id group by a.case_id;

目前的结果显示为:

a.id v.value
123 a,b
234 a 456 a,b,c
789 d,e
237 a

我想要它做的是分组并计算group_concat的结果,所以看起来应该是这样的:

v.value count
a,b 1
a 2
a,b,c 1
d,e 1

我尝试将我提供给group_concat的字段名称分组失败,但它继续说“无法按名称分组”

我必须直接在查询中而不是在代码中执行此操作。有什么建议?

2 个答案:

答案 0 :(得分:3)

SELECT gc_values
     , COUNT(*)
  FROM 
     ( SELECT a.id
            , GROUP_CONCAT(v.value) gc_values
         FROM asset a
         JOIN `values` v 
           ON v.id = a.id
        GROUP
           BY a.id
     ) x
 GROUP
    BY gc_values;

答案 1 :(得分:0)

你可以这样做:

select grouped_values, count(*) from [subselect aliasing group_concat] group by grouped_values