

MySQL集計の質問です。

テーブル１：

[code]

    ユーザー    商品     個数
    Aさん      りんご    １
    Aさん      バナナ    ４
    Aさん      オレンジ  ２
    
[/code]

結果：

[code]

    ユーザー   商品   個数   商品   個数   商品     個数
    Aさん     りんご   １    バナナ  ４   オレンジ  ２
    
[/code]

テーブル１からどんなSQL文を実行したら上記ほしい結果ができますか。

よろしくお願い致します。


CC BY-SA 3.0
2016-04-30T04:36:04.933
24467
2016-10-15T12:17:12.050
2016-10-15T12:17:12.050
754
15335
question
mysql sql
MySQL集計について、立てる列を横にしたいです


`test` テーブルを以下の様に作成して、適当にデータを入れてみました。(ユーザー, 商品)カラムには `UNIQUE` 制約を設定していません。

[code]

    > desc test;
    +--------------+-------------+------+-----+---------+-------+
    | Field        | Type        | Null | Key | Default | Extra |
    +--------------+-------------+------+-----+---------+-------+
    | ユーザー  　   | varchar(20) | YES  |     | NULL    |       |
    | 商品          | varchar(20) | YES  |     | NULL    |       |
    | 個数          | int(11)     | YES  |     | NULL    |       |
    +--------------+-------------+------+-----+---------+-------+
    
    > select * from test;
    +-------------+--------------+--------+
    | ユーザー      | 商品         | 個数   |
    +-------------+--------------+--------+
    | Aさん        | りんご        |      1 |
    | Aさん        | バナナ        |      4 |
    | Aさん        | オレンジ      |      2 |
    | Aさん        | りんご        |     10 |
    | Bさん        | りんご        |      5 |
    | Cさん        | バナナ        |      3 |
    | Cさん        | オレンジ      |      6 |
    | Cさん        | バナナ        |      4 |
    +--------------+--------------+--------+
    
[/code]

サブクエリでユーザーごとの「商品 個数」を作成して、`GROUP_CONCAT` で連結します。

[code]

    > SELECT ユーザー, GROUP_CONCAT(X SEPARATOR ' ') AS 商品リスト
    FROM (
      SELECT ユーザー, CONCAT(商品, ' ', SUM(個数)) AS X
      FROM test GROUP BY ユーザー,商品
    ) AS list GROUP BY ユーザー;
    
    +--------------+-----------------------------+
    | ユーザー      | 商品リスト                    |
    +--------------+-----------------------------+
    | Aさん        | オレンジ 2 バナナ 4 りんご 11   |
    | Bさん        | りんご 5                     |
    | Cさん        | オレンジ 6 バナナ 7            |
    +--------------+-----------------------------+
    
[/code]


CC BY-SA 3.0
2016-04-30T08:39:08.640
24473
2016-04-30T08:39:08.640
24467
answer