从JsonPath和XPath到SPL( 四 )

现在要对不同的层级进行分组汇总(对trainerId分组,统计每组中 ownerColours的成员个数),一般的方法难以实现,SPL就简单多了:
 
A
1

2
=A1(1).runners
3
=A2.groups(trainer.trainerId; ownerColours.array().count():times)
SPL计算能力强,可简化复杂的业务逻辑
SPL支持分步计算、有序计算、分组后计算等逻辑较复杂的计算,很多SQL/存储过程难以实现的计算,用SPL解决起来就很轻松 。比如,找出销售额累计占到一半的前n个大客户,并按销售额从大到小排序:
 
A
B
1

/取数据
2
=A1.sort(amount:-1)
/销售额逆序排序
3
=A2.cumulate(amount)
/计算累计序列
4
=A3.m(-1)/2
/最后的累计即总额
5
=A3.pselect(~>=A4)
/超过一半的位置
6
=A2(to(A5))
/按位置取值
从编码到JsonPath/XPath,json/XML的计算处理技术从无到有 。从JsonPath/XPath到SPL,多层数据的计算能力由弱到强 。SPL内置专业的数据对象、丰富的计算函数、字符串函数、日期函数,具有足够的计算能力 。SPL支持脚本外置和热切换,可用一致的方法计算多种数据源,有助于实现更优的应用架构 。SPL内置更方便的函数语法,适合计算结构复杂的多层数据,可简化复杂的业务逻辑 。
 
SPL下载地址:
http://c.raqsoft.com.cn/article/1595816810031
SPL开源地址:
https://github.com/SPLWare/esProc




推荐阅读