集算器中 group,groups 的区别
使用 group 的时候,
=A7.group(工号, 职员姓名;sum(bonus):bonus)
=A7.groups(工号, 职员姓名;sum(bonus):bonus)
都可以得到结果。
但是 group 得到的结果,null 的值不会累加。导致结果不正确。
groups 得到的结果,null 被作为 0 处理,可以进行多条记录累加,结果正确。
问题:
group,groups 有什么区别?它们分别适应在什么场合下使用
"使用 group 的时候, =A7.group(工号, 职员姓名;sum(bonus):bonus) =A7.groups(工号, 职员姓名;sum(bonus):bonus) 都可以得到结果 .."
使用 group 的时候,
=A7.group(工号, 职员姓名;sum(bonus):bonus)
=A7.groups(工号, 职员姓名;sum(bonus):bonus)
都可以得到结果。
但是 group 得到的结果,null 的值不会累加。导致结果不正确。
groups 得到的结果,null 被作为 0 处理,可以进行多条记录累加,结果正确。
问题:
group,groups 有什么区别?它们分别适应在什么场合下使用
使用方式上 ,group 里会用成员要加 ~, 也就是 A7.group(工号, 职员姓名;~.sum(bonus):bonus),不然的话取的一直是组内第一条值求和
groups 的性能会更高些,具体区别的话可以看下两个函数的函数帮助,groups 对序表操作,group 对序列操作
group 算聚合相当于 group(…).new(…),聚合式要写成 ~.sum(…),这是先算出子集再去进一步动作,理论上可以做任何聚合,但性能差一点,且占用内存
groups 计算聚合时不计算出子集,直接用累积的方式聚合,不用写 ~(因为也没算出过子集),只支持有限的几种可以用累积方式计算的聚合,性能好占用内存少