将重复的行转换为新列MySql


convert duplicate rows into new columns MySql

基本上我有一个MySql表

--------    -----------   --------
 cv_id       all_stages    amount
--------    -----------   --------
  12           S1           5
  13           S4           2
  13           S2           1  
  14           S1           3
  14           S3           2

我必须编写一个查询,因此,基于cv_id,我需要一个条目。我还需要生成更多的列。

我想要的是

--------    ---------  --------  --------  --------   -------
 cv_id       stage1     stage2    stage3    stage4     total
--------    ---------  --------  --------  --------   -------
  12           S1                                       5
-------------------------------------------------------------
  13                      S2                  S4        3
-------------------------------------------------------------
  14           S1                   S3                  5
-------------------------------------------------------------

我应该如何根据cv_id将所有阶段排列到相应的stage列并合计amount列?

第页。S-我需要执行查询以生成新列

动态生成列不是一个好的做法。列表示模型的公共属性,最终得到的表有100列,每行只使用一列。您正在尝试做的事情,可以通过另一个将cv_id与阶段链接起来的表来实现。

例如

table cv_stage
Columns: cv_id, stage_name

然后,您可以始终查询具有特定阶段的cv_id或您可能需要的任何其他信息。