1.hive中的行转列最常用的就是lateral view的语法,例如:
select id,vcol from t lateral view explode(col) vtable as vcol
值得注意的是如果lateral view后面的数组为空,那么这一行数据是不输出的,也就是lateral view会产生零行或者N行数据
2.常见的列转行的语法是:select a.x,sum(If(a.x==‘a’,a.o,0)),sum(if(b.x==‘b’,b.o,0)) from a group by a.x 原理是按照第一列分组,计算第二列的sum值时,只有第一列的值等于某个特定值的时候才求和,同理计算第三列的值