我试图在表格中显示游戏结果。我的原始数据如下所示:
matchID StageID StringID ShooterID FinalScore
118 1 3 10040 18.008
118 1 2 10040 13.639
118 1 1 10040 9.895
118 1 3 10051 15.464
118 1 2 10051 23.842
118 1 1 10051 21.018
118 1 3 10041 13.601
118 1 2 10041 8.151
118 2 1 10041 49.5
118 2 2 10041 59.5
118 2 3 10041 49.5
118 2 1 10040 69.5
118 2 3 10040 39.5
118 2 1 10051 109.5
118 2 2 10051 89.5
118 2 3 10051 99.5
118 2 2 10040 59.5
... many more rows with a variable number of StageID's
输出表应如下所示:
ShooterID Stage1 Stage2 Total
10039 38.26 188.50 226.76
10040 41.54 168.50 210.04
10041 28.33 158.50 186.83
10042 59.98 355.50 415.48
10043 49.23 198.50 247.73
10047 33.16 218.50 251.66
10048 33.21 358.50 391.71
10051 60.32 298.50 358.82
10052 30.74 278.50 309.24
10053 62.49 268.50 330.99
我尝试过使用group_concat(),但是当我尝试添加Total列时,事情变得非常糟糕。
现在我决定尝试使用临时表格进行存储过程。我的问题是,我无法弄清楚如何创建一个具有可变列数的临时表。我确实找到了一个类似的问题,但是它使用的是MSSQL并且不适用于mysql。 (Procedure to create a table with a variable number of columns)
我确实找到了一些使用静态列数执行此操作的示例,但动态创建临时表让我感到难过。有人能指出我正确的方向吗?