如何请求将一行中的所有字段分组?
表格
id | type
---------
1 | 1
1 | 1
2 | 2
3 | 3
3 | 3
查询:
select concat('id(', count(type), ')') from T group by id;
输出:
id(2)
id(1)
id(2)
我希望得到一个字符串:'id(1)' = 2, 'id(2)' = 1, 'id(3)' = 2
答案 0 :(得分:5)
如果你分两个阶段完成。制作id(n) = x
条记录,然后制作GROUP_CONCAT()。
SELECT
GROUP_CONCAT(id_count SEPARATOR ', ')
FROM
(SELECT CONCAT('id(', id, ') = ', count(type)) id_count FROM T GROUP BY id) data
但请注意,这通常是SQL Anti-Pattern的标志。
通常建议不要将多个值压缩为单个值。通常建议将演示文稿和数据层分开。