pivot@s 能否实现文本聚合
大佬们,请问 pivot@s 能否实现文本聚合?比如,想用 pivot@s 实现下图中 2 的效果。
=sum(““a””,““,””,““b””) 返回的结果是文本 "a,b",本以为在 pivot@s 中也可以实现聚合。
一般的都会有 str_agg 的聚合函数。SPL 要如何实现,不要用 group(group()),恳请大佬指点,谢谢!
有个困惑的地方是,groups 里的聚合函数支持 sum/count/max/min/top/avg/iterate
/icount/median/maxp/minp,比如以下 sum 聚合文本,在 groups 里可以实现:
但是,在 pivot@s 仅支持 sum/count/max/min/avg,且跟 groups 里的聚合功能还不一样。能不能统一一下聚合函数,实现跟 groups 里一样的聚合函数和聚合功能?
谢谢大佬回复!
要解题简单,您这样的写法也是变通方法的一种。
帖子里写了,不要借助于 group。
我想知道为啥 pivot@s 里的 sum 不能聚合文本,而 groups 里的 sum 又能实现文本聚合?
既然都是 SPL 的聚合功能,为啥同样的 sum 聚合在不同的函数里会有区别?
对 pivoit 做了一下修改,支持字符串相加,需要更新一下开源的程序
谢谢大佬!
我更新了程序,用的是海外版的 esproc desktop,也更新了 jar 包,但没有效果。
麻烦大佬方便的时候指点一下,要怎样更新开源程序,我更新了之后,结果依然是空的
再更新下 esproc-bin-***.jar 试试
谢谢大佬,更新之后可以了。但还有一个问题,恳请大佬们得闲时考虑一下:
文本聚合后,前面那个分隔符逗号要如何去除?因为 pivot@s 里只能使用指定的几个聚合函数,所以不能进一步用其他函数来处理,比如,sum(字段).sbs(2:),这样就报错了。我的想法是:能不能让 pivot@s 的三参值字段的结果返回普通的排列,不要限定于几个聚合函数,让用户自己去处理,
比如三参的值字段可不可以实现这样的操作:~.(值字段名).concat@c()。这样自由度更大。
因为,pivot@r 逆透视的时候,参数是可以写成波浪线的,同时返回记录,如下:
还有,pivot@s 里的聚合函数:
1、支持了 count,那 icount 是不是也可以实现?
2、iterate 和 top 也是很常用的,能否考虑一下添加这些聚合?
3、最好是不要限定于聚合,用波浪线返回排列,这样就自由了。
SPL 的 pivot 是一个很实用的函数,相比较于 excel 自有他的独到之处,恳请大佬们考虑一下,完善其功能,实现更自由的处理。
以下是 Power Query 里的 pivot,供参考。希望 SPL 的 pivot@s 也能实现返回排列或者序列的写法,而不是限制于聚合函数,所有的函数都能去处理这部分内容。
我的想法很简单:
1. 希望透视的值显示支持序列 序表 记录 排列等复合结构
2. 希望值区域的计算不仅仅局限于聚合,类似 Excel 的 power query 中值区域可以使用所有内置函数进行嵌套复合运算,如我要取某个字段中的某几项之间的运算
对 pivot@s 进行了拓展,参数里的聚合表达式支持 ~.f(…) 这种写法了
这个题可以写成:x.pivot@s(f1;f2,~.(f3).concat@c())
需要更新开源的 jar 包
握艹,感谢大佬,感谢 SPL,SPL 无敌!!!😄
大佬,我还有一个想法:
既然 pivot@s 里的聚合表达式支持 ~.fx(…) 这样的写法,那 groups 里的聚合表达式能写成这样不?😄
groups 是用累积方式进行的分组,不能用 ~.f 的写法
group 是先分好组再对每组进行汇总,需要写成 ~.f() 这个样子
I got it…Thank u for ur time and support!👍 👍