行列转换
主要用于对数据的处理和分析。
有一张表student,如下:
可以发现,张三、李四都有3门相同课程,并且这3门课程都有分数。
还有一张表student2,如下:
可以发现,student2实现了同样的功能,但是stduent2表 看起来更加简单清爽,而且当数据量增加的时候,student2表的好处也就显而易见了。
假如我现在只有student表,里面有百万条数据,难道我需要再建立一个student2表,把数据重新 添加进去吗?
这样当然可以,不过麻烦罢了。
1.1 纵表转横表
我要把三个张三转为一个张三,course变为字段,并且输出相应的分数。
step1: 对name分组,三个张三合为一个张三。
step2: 利用decode函数的逻辑case when+伪列 实现纵转横的假象。
select name,