是否可以使用多列中的group by
?
这是members
表:
Id | CateogryId | Value
1 | 1 | 10
2 | 2 | 20
1 | 1 | 10
目前,我可以使用
返回(A,B)
( SELECT GROUP_CONCAT(DISTINCT members.Category)
FROM members
JOIN categories on members.CategoryId = category.Id
) as "Categories"
但我也想要每个类别旁边的总数,例如(A:20, B:20)
答案 0 :(得分:1)
从具有类别总计的虚拟表(子查询)开始,如下所示:
SELECT m.Category, SUM(m.Value) as Total
FROM members m
GROUP BY m.Category
ORDER BY m.Category
然后使用你的虚拟桌面这样做你的concat。
SELECT GROUP_CONCAT(CONCAT(Category, ': ', Total) SEPARATOR ' ')
FROM (
SELECT m.Category, SUM(m.Value) as Total
FROM members m
GROUP BY m.Category
ORDER BY m.Category
)A