【问题标题】:Transpose some columns to row将一些列转置为行
【发布时间】:2016-09-15 11:33:32
【问题描述】:

我知道以前有人问过同样的问题。但是我没有成功地做我需要做的事情。所以我问你。

我有一个表,其中包含 client_ID 和购买每个客户对应的不同产品类别的一些概率。

Client_ID | Prob_CategoryA | Prob_CategoryB | Prob_CategoryC

     1                 0.2                  0.3                    0.2
     2                 0.4                  0.6                    0.7
     3                 0.3                  0.7                    0.4

现在我想做的是把上面的表格变成这个。

Client_ID | Category Name |  Probability

   1                A               0.2
   1                B               0.3 
   1                C               0.2
   2                A               0.4
   2                B               0.6
   2                C               0.7
   3                A               0.3
   3                B               0.7
   3                C               0.4

非常感谢

【问题讨论】:

  • 非常感谢您及时回复 Jarlh。但是我怎样才能获得类别类型并在什么时候为它们中的每一个创建一个选择语句呢?我只有每个类别的概率。我的表中没有列出类别类型。因此,我想不出一种可以检索这些类型的方法。提前谢谢你

标签: sql sql-server transpose


【解决方案1】:

简单的 UNPIVOT:

SELECT Client_Id, SUBSTRING(Cat, 14, 1) [Category Name], Probability
FROM Src
UNPIVOT (Probability FOR Cat IN (Prob_CategoryA, Prob_CategoryB, Prob_CategoryC)) UP

结果

Client_Id   Category Name Probability
----------- ------------- -----------
1           A             0.2
1           B             0.3
1           C             0.2
2           A             0.4
2           B             0.6
2           C             0.7
3           A             0.3
3           B             0.7
3           C             0.4

【讨论】:

    【解决方案2】:

    使用UNPIVOT:

    SELECT Client_ID, Cats, Probability
    FROM
    (SELECT Client_ID, Prob_CategoryA, Prob_CategoryB, Prob_CategoryC
     FROM yourTable) t
    UNPIVOT
    (Probability FOR Cats IN (Prob_CategoryA, Prob_CategoryB, Prob_CategoryC)
    ) AS c
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-12-20
      • 2021-09-22
      • 1970-01-01
      • 2021-11-09
      • 1970-01-01
      • 2023-03-27
      • 1970-01-01
      相关资源
      最近更新 更多