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

次に、仮想テーブルを使用して、そのように連結を行います。

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 に答える