I have a table like this:
id name
1 washing
1 cooking
1 cleaning
2 washing
2 cooking
3 cleaning
,我希望进行以下分组
id name count
1 washing,cooking,cleaning 3
2 washing,cooking 2
3 cleaning 1
我尝试按ID分组,但是只能按分组后显示计数
SELECT id,
COUNT(name)
FROM WORK
GROUP BY id
但这只会提供计数,而不是名称的实际组合。
我是SQL新手。我知道它必须是关系型的,但必须有某种方式。
谢谢!
答案 0 :(得分:0)
在postgresql中,您可以使用array_agg
SELECT id, array_agg(name), COUNT(*)
FROM WORK
GROUP BY id
在mysql中,您可以使用group_concat
SELECT id, group_concate(name), COUNT(*)
FROM WORK
GROUP BY id
或进行红移
SELECT id, listagg(name), COUNT(*)
FROM WORK
GROUP BY id