创建一个具有可变列数的mysql临时表

时间:2015-09-26 05:12:27

标签: mysql pivot temp-tables

我试图在表格中显示游戏结果。我的原始数据如下所示:

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

我确实找到了一些使用静态列数执行此操作的示例,但动态创建临时表让我感到难过。有人能指出我正确的方向吗?

0 个答案:

没有答案