2017-10-04 4 views
1

値をリストに変換するSQLに「集約」関数がありますか?例では、フォームの表のようになります。別の列で1つの列のSQLグループ値

私は戻ったいことは、このようになりますテーブルです
| game_id | player | score | 
|---------|--------|-------| 
| 1  | fred | 2  | 
| 1  | tom | 1  | 
| 2  | fred | 3  | 
| 2  | tom | 4  | 

SELECT player, listify(score) FROM games GROUP BY player;

+0

あなたが使っているデータベースに質問してください。さらに良い方法は、Googleの " group_concat"だけです。 'group_concat()'はMySQLの関数であり、他のデータベースと同様の機能を得る方法について多くの質問があります。 –

+0

答えは、使用しているデータベースによってまったく異なります。 MySQL、SQL Server、Oracleなどを使用していますか? –

答えて

1

| player | scores | 
|--------|--------| 
| fred | 2, 3 | 
| tom | 1, 4 | 

コマンドは次のようになりますティムとゴードンのおかげです。私が探しているPostgres関数はarray_aggです。

SELECT player, array_to_string(array_agg(score), ',') AS scores FROM games GROUP BY player; 

array_agg

は配列にすべての項目を見る置き、そしてあなたは、SELECT文の中でそれらを返すことができるように文字列に変換する必要があります。この場合、完全なクエリは次のようになります。

関連する問題