Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何基于另一个可以动态更新的表的信息,使用mysql实现Pivot属性(或输出)_Mysql - Fatal编程技术网

如何基于另一个可以动态更新的表的信息,使用mysql实现Pivot属性(或输出)

如何基于另一个可以动态更新的表的信息,使用mysql实现Pivot属性(或输出),mysql,Mysql,我想将列数据表示为表中的行 我有3个输入表 Person Id | Name | age | Country ----- | :----: | :----: | :-----: 1 | anil | 20 | India 2 | Raggu | 21 | India 3 | IRSHAD| 22 | India 4 | Sravas| 20 | India

我想将列数据表示为表中的行

我有3个输入表

             Person

  Id   |   Name |  age   | Country
 ----- | :----: | :----: | :-----:
   1   |  anil  |   20   |  India
   2   |  Raggu |   21   |  India
   3   |  IRSHAD|   22   |  India
   4   |  Sravas|   20   |  India
   5   |    .   |   .    |   .
   6   |    .   |   .    |   .
   7   |    .   |   .    |   .
我需要一张桌子

             Gim_Result

   Name |  Height| Weight |  Fat   |....
 :----: | :----: | :-----:|:-----: |
  anil  |   6    |   60   | null   | .....
  Raggu |   null |   null | 120    | .....
  IRSHAD|   null |  null  | null   | ....
  Sravas|   5.8  |  null  | null   | ....
   .    |    .   |   .    |   .    | .....
   .    |    .   |   .    |   .    | .....
   .    |    .   |   .    |   .    | .....
我需要一个查询,这样它将产生如上表所示的结果 它在结果表中为测试表中的每个不同测试动态生成新列

我认为我们可以在SQLServer中使用pivot生成这种类型的结果


但是我需要使用mysql生成这个结果…

基本原理如下:

SELECT
    EntityID
  , SUM(CASE WHEN PivotColumn = 'PivotColumnValue1' THEN PivotValue ELSE NULL END)
  , SUM(CASE WHEN PivotColumn = 'PivotColumnValue2' THEN PivotValue ELSE NULL END)
  /* ... */
  , SUM(CASE WHEN PivotColumn = 'PivotColumnValueN' THEN PivotValue ELSE NULL END)
FROM
  MyTable
GROUP BY
  EntityID
;

当然,您可以使用您选择的任何聚合函数。

可能的重复项在我的情况下,我不知道测试表中存在哪些字段,以及何时在测试表中添加新测试。我的静态查询也会自动生成输出表,并将新测试作为列。在我的情况下,我不知道测试表中存在哪些字段以及何时添加新测试测试表我的查询自动生成带有新测试列的输出表sql Server中没有动态透视解决方案。如果要实现它,就必须使用动态sql。
             Gim_Result

   Name |  Height| Weight |  Fat   |....
 :----: | :----: | :-----:|:-----: |
  anil  |   6    |   60   | null   | .....
  Raggu |   null |   null | 120    | .....
  IRSHAD|   null |  null  | null   | ....
  Sravas|   5.8  |  null  | null   | ....
   .    |    .   |   .    |   .    | .....
   .    |    .   |   .    |   .    | .....
   .    |    .   |   .    |   .    | .....
SELECT
    EntityID
  , SUM(CASE WHEN PivotColumn = 'PivotColumnValue1' THEN PivotValue ELSE NULL END)
  , SUM(CASE WHEN PivotColumn = 'PivotColumnValue2' THEN PivotValue ELSE NULL END)
  /* ... */
  , SUM(CASE WHEN PivotColumn = 'PivotColumnValueN' THEN PivotValue ELSE NULL END)
FROM
  MyTable
GROUP BY
  EntityID
;