2

プレイヤーとそのスコアのテーブルがあります。累積合計を取得するためのクエリを作成できました。この累積合計をプレーヤーごとにグループ化するクエリが必要です。これにより、以前のプレーヤーの累積合計が含まれず、新しいプレーヤーの累積合計から開始されます。現在のクエリで得られる結果の例:

+--------+--------+-------+
| player | total  | cumul |
+--------+--------+-------+
| Arne   |     16 |    16 |
| Arne   |    -48 |   -32 |
| Arne   |     13 |   -19 |
| Arne   |    -17 |   -36 |
| Arne   |      7 |   -29 |
| Arne   |     41 |    12 |
| Arne   |    -30 |   -18 |
| Arne   |     -6 |   -24 |
| Arne   |     18 |    -6 |
| Bjorg  |     -5 |   -11 |
| Bjorg  |      9 |    -2 |
| Bjorg  |    -38 |   -40 |
| Bjorg  |    -12 |   -52 |
| Bjorg  |     11 |   -41 |
| Bjorg  |      3 |   -38 |
+--------+--------+-------+

どのように見えるか:

 +--------+--------+-------+
 | speler | total  | cumul |
 +--------+--------+-------+
 | Arne   |     16 |    16 |
 | Arne   |    -48 |   -32 |
 | Arne   |     13 |   -19 |
 | Arne   |    -17 |   -36 |
 | Arne   |      7 |   -29 |
 | Arne   |     41 |    12 |
 | Arne   |    -30 |   -18 |
 | Arne   |     -6 |   -24 |
 | Arne   |     18 |    -6 |
 | Bjorg  |     -5 |    -5 |
 | Bjorg  |      9 |     4 |
 | Bjorg  |    -38 |   -34 |
 | Bjorg  |    -12 |   -46 |
 | Bjorg  |     11 |   -35 |
 | Bjorg  |      3 |   -32 |
 +--------+--------+-------+

最初のテーブルの問題は、2 番目のプレーヤーが前のプレーヤーのクムルを使用して開始することです。プレイヤーを切り替えるには、クエリをどのように変更すればよいですか?

これが私のクエリです:

SELECT t.player,
     t.total,
     @running_total := @running_total + t.total AS cumul
FROM ( SELECT player, id, sum(punten) as total FROM `whiteboard_games` 
WHERE 1 group by player, id) t
JOIN (SELECT @running_total := 0) table1
ORDER BY t.player, id

前もって感謝します!

4

1 に答える 1