Using Sql Unpivot



我有这个表,我需要将它转换为下面的表。我猜这可以使用unpivot完成,但我无法了解。有人能帮忙吗?

MAKER   LAPTOP  PC  PRINTER  
C       1       0     0  
B       1       1     0  
D       0       0     2  
E       0       3     1  
A       2       2     3  
MAKER   TYPE    Count
B       Printer  0  
C       PC       0  
C       Printer  0  
D       Laptop   0  
D       PC       0  
E       Laptop   0  
E       Printer  3  
A       Laptop   2  
A       PC       2  
A       Printer  3  
B       Laptop   1  
B       PC       1  
E       PC       3  
C       Laptop   1  
D       Printer  1  

如果表不是太大,union all可能是最简单的解决方案:

select maker, 'Laptop' as type, laptop as "count" from t union all
select maker, 'PC' as type, pc from t union all
select maker, 'Printer' as type, printer from t;

最新更新