0

是否可以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)

4

1 回答 1

1

从一个具有 Category Total 的虚拟表(子查询)开始,如下所示:

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
于 2012-07-01T02:19:11.413 回答