1.用法
group_concat([DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段] [Separator '分隔符'])
2.测试
2.1创建数据库
CREATE TABLE `testgroup` (
`id` bigint(20) NOT NULL,
`score` int(20) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC COMMENT='测试分数';
2.2测试
-- 默认方法
SELECT
id,
GROUP_CONCAT(score)
FROM
testgroup
GROUP BY
id
-- 根据id 分成了三行 并且分数默认用 逗号 分割 但是有每个id有重复数据 接下来去重
SELECT id,GROUP_CONCAT(DISTINCT score) FROM testgroup GROUP BY id
-- 排序
SELECT id,GROUP_CONCAT(score ORDER BY score DESC) FROM testgroup GROUP BY id
-- 自定义分隔符
SELECT id,GROUP_CONCAT(score SEPARATOR ';') FROM testgroup GROUP BY id
2.3计算分类之后的总量
SELECT
id,
sum( score) AS num
FROM
testgroup
GROUP BY
id
ORDER BY
num desc