我有一个表格,长这样:
+---------+----------+---------+-------+-----------+-----------+-------------+
| ValueId | ObjectId | Field | Value | Estimated | OrigValue | FromDefault |
+---------+----------+---------+-------+-----------+-----------+-------------+
| 1 | 1 | 'Stat1' | 35 | true | (null) | (null) |
| 2 | 1 | 'Stat2' | 2 | false | 0 | true |
| 3 | 1 | 'Stat3' | 0.213 | true | 0.212 | false |
| 4 | 2 | 'Stat1' | 513 | true | 122 | true |
| 5 | 2 | 'Stat2' | 31 | true | (null) | true |
| 6 | 2 | 'Stat3' | 2.411 | true | (null) | false |
+---------+----------+---------+-------+-----------+-----------+-------------+
Fiddle: http://www.sqlfiddle.com/#!9/445271/2/0
我希望透视表看起来像这样:
+----------+-------+-------+-------+-----------------+-----------------+-------------------+-----------------+-----------------+-------------------+-----------------+-----------------+-------------------+
| ObjectId | Stat1 | Stat2 | Stat3 | Stat1_Estimated | Stat1_OrigValue | Stat1_FromDefault | Stat2_Estimated | Stat2_OrigValue | Stat2_FromDefault | Stat3_Estimated | Stat3_OrigValue | Stat3_FromDefault |
+----------+-------+-------+-------+-----------------+-----------------+-------------------+-----------------+-----------------+-------------------+-----------------+-----------------+-------------------+
| 1 | 35 | 2 | 0.213 | true | (null) | (null) | false | false | true | true | 0.212 | false |
| 2 | 513 | 31 | 2.411 | true | 122 | true | true | (null) | true | true | (null) | false |
+----------+-------+-------+-------+-----------------+-----------------+-------------------+-----------------+-----------------+-------------------+-----------------+-----------------+-------------------+
Fiddle: http://www.sqlfiddle.com/#!9/6e84ff2/2/0
我理解如何进行数据透视来将“value”作为字段,但不知道如何包含多个数据透视并将它们命名为 Field + _ + OriginalColumn。
编辑:Field 的不同值的数量是众所周知的,可以硬编码到答案中。
'stat4'
?'stat5'
,'stat6'
,'stat7'
等呢?总的来说,最好在演示层进行旋转操作,而不是在数据引擎中进行。 - Thom AField + _ + OriginalColumn
,那看起来会是什么样子呢?例如,“Stat1”是否像“Field_Stat1”这样?此外,“多个数据透视表”具体是什么意思? - ccarpenter32