0

ゲームという名前のテーブルがあります。

id  player_a_id  player_b_id  player_a_result  player_b_result  turn 
 1     1           2             1                 0              1 
 2     3           4             1                 0              1 
 3     1           3             1                 0              2

テーブルの評価リストを作成するSQLクエリを作成しようとしています。このような:

player_id  total score 
   1           2 
   2           0 
   3           1 
   4           0 

SQLの書き方がわかりません。いくつかの助けが素晴らしいでしょう!

4

2 に答える 2

1
SELECT player_id, SUM(result)
FROM
(SELECT player_a_id AS player_id, player_a_result AS result FROM games
UNION
SELECT player_b_id, player_b_result FROM games) AS u
GROUP BY player_id
ORDER BY player_id

これはあなたが求めているものだと私は推測しています。これにより、(UNION)プレーヤーaとbを1つのセットに結合し、プレーヤーごとにグループ化して結果を合計するサブクエリ(parens()内のもの)が作成されます。

于 2012-05-14T20:21:32.727 に答える
0

うーん..ranking_scoreSUMをどのように取得しますか?合計したい数値/列は何ですか?同じ列の値を合計する必要がある場合、例:

表の例:

`id`  `player_id`  `number`
 1     1            1
 2     2            15
 3     1            20

期待される結果:

`player_id`  sum(`number`)
 1           21
 2           15

あなたは単にこれを使うことができます:

SELECT player_id, SUM(`number`) FROM `table` GROUP BY player_id

SUMはすべての行の結果をカウントします。合計をplayer_idで割るにはGROUPBYが必要です。異なる列の合計を取得する必要がある場合は、プロシージャを準備する必要があります。

于 2012-05-14T20:01:34.107 に答える