我正在寻找一种同时使用 group_concat 和计数的方法......我希望得到这样的结果
红色,红色,红色,红色,蓝色,蓝色,蓝色,蓝色,蓝色
完成后变成这样
“红色(4),蓝色(5)”
有什么建议么?
我正在寻找一种同时使用 group_concat 和计数的方法......我希望得到这样的结果
红色,红色,红色,红色,蓝色,蓝色,蓝色,蓝色,蓝色
完成后变成这样
“红色(4),蓝色(5)”
有什么建议么?
使用子查询:concat(field, count(*))
,然后group_concat()
相应地使用。
SELECT
GROUP_CONCAT(x.groups)
FROM
(
SELECT
CONCAT(color, '(', count(color), ')') AS groups
FROM colors
GROUP BY color
) x
SELECT GROUP_CONCAT(CONCAT(color, '(', amount, ')') SEPARATOR ',') AS color_with_amount
FROM ( SELECT color, COUNT(*) AS amount
FROM colors
GROUP BY color) AS h
GROUP BY '1'