41600


下記のようなテーブルとレコードがあります。

id | user_id | amount | type  
1 | 1 | 100 | a  
2 | 1 | 200 | b  
3 | 1 | 300 | c  
4 | 2 | 1000 | a  
5 | 2 | 1500 | b  
6 | 2 | 2000 | c

これを下記のように取得したいのですがmysqlで可能でしょうか？

user_id | a | b | c  
1 | 100 | 200 | 300  
2 | 1000 | 1500 | 2000


CC BY-SA 3.0
2018-02-08T03:19:25.567
41563
2018-02-09T03:08:00.040
9948
question
mysql sql
mysqlでGROUP BYした際に同じカラム名の値も表示したい


あらかじめ `type` の取りうる値がわかっており、`user_id, type` で一意になるなら  
次のクエリで取得できます。 (テーブル名は `user_amount`)

[code]

    SELECT `user_id`
    , sum(CASE `type` WHEN 'a' THEN `amount` END) `a`
    , sum(CASE `type` WHEN 'b' THEN `amount` END) `b`
    , sum(CASE `type` WHEN 'c' THEN `amount` END) `c`
    FROM `user_amount`
    GROUP BY `user_id`
    ORDER BY `user_id`
    
[/code]


CC BY-SA 3.0
2018-02-09T03:08:00.040
41600
2018-02-09T03:08:00.040
8431
41563
answer