"spl 的 pivot 函数支持单个指标字段行转列,如果多个指标只能多个 pivot 后 join 一起,有没有更简单的方法。pivot 支持多个指标字段行转列就方便了。 例如,序表有日期,部 .."
spl 的 pivot 函数支持单个指标字段行转列,如果多个指标只能多个 pivot 后 join 一起,有没有更简单的方法。pivot 支持多个指标字段行转列就方便了。例如,序表有日期,部门,销售量,销售金额四个字段,需要按日期分组,根据部门的值将销售量和销售金额行转列,变成日期,部门 1 销售量,部门 2 销售量,部门 1 销售金额,部门 2 销售金额
这样没法自动给目标字段起名字,你得自己写出来,不然会重名了。反正要明确列出名字,那不如自己 group 之后再 new 了,可以用宏来拼目标数据结构。pivot 本质就是 group.new。
谢谢老贼指点。
1、这里 pivot@s 确实处理起来不是很理想,构建成 record 展开,必须保证每一列的 record 都有相同的字段,此处如果某一天某个部门没有出现,那 pivot 之后是空,derive@x 时是以第一个 record 中的字段名为基准的,这样结果中的字段还是会不一样。
2、用宏拼接数据结构时,会涉及到 select,此时 select 是不是全表遍历,不知道效率怎么样?有没有其他写法?
3、pivot@r().pivot@s() 这样最方便😄
这样没法自动给目标字段起名字,你得自己写出来,不然会重名了。
反正要明确列出名字,那不如自己 group 之后再 new 了,可以用宏来拼目标数据结构。
pivot 本质就是 group.new。
谢谢老贼指点。
1、这里 pivot@s 确实处理起来不是很理想,构建成 record 展开,必须保证每一列的 record 都有相同的字段,此处如果某一天某个部门没有出现,那 pivot 之后是空,derive@x 时是以第一个 record 中的字段名为基准的,这样结果中的字段还是会不一样。
2、用宏拼接数据结构时,会涉及到 select,此时 select 是不是全表遍历,不知道效率怎么样?有没有其他写法?
3、pivot@r().pivot@s() 这样最方便😄