使用group_concat然后按Group BY进行MySQL分组

时间:2019-06-26 20:57:08

标签: mysql sql group-by count subquery

我有一张这样的桌子:

enter image description here

基本上,我想对所有名称进行分组,并给出此类分组的计数:

enter image description here

由于有2位用户进行烹饪和清洁,其中1位用于洗涤,4位用于烹饪。

我正在尝试使用group_concat

SELECT group_concat(DISTINCT name) AS name, count(*)
FROM warehouse.test1
GROUP BY guid

但是,这将无法正常工作,因为我需要按分组进行分组,然后对这些分组进行计数。

我不知道如何对分组进行分组,然后进行计数。

提前感谢,感谢您的注意!

更新 按照我尝试的答案

SELECT   groupings, COUNT(*)
FROM     (SELECT   group_concat(DISTINCT name) AS groupings
          FROM     warehouse.test1
          GROUP BY saguid) t
GROUP BY groupings;

但是,我的理解是

# groupings, COUNT(*)
'cleaning,cooking', '2'
'cooking', '2'
'washing', '1'

烹饪要数4?

1 个答案:

答案 0 :(得分:1)

我将这个查询与另一个查询包装在一起,以对分组的数据进行验证:

SELECT   groupings, COUNT(*)
FROM     (SELECT   group_concat(DISTINCT name) AS groupings
          FROM     warehouse.test1
          GROUP BY saguid) t
GROUP BY groupings