【和SQL对比】记录集合保存

研发部有多少人?比销售部少几人?和商务部平均年龄相差多少?

SQL解法

研发部的人数

select count(*) from 员工表 where 部门='研发部'

比销售部少几人

select (select count(*) from 员工表 where 部门='销售部') -
       (select count(*) from 员工表 where 部门='研发部')
from dual

和商务部的平均年龄相差

	select (select avg(年龄) from 员工表 where 部门='研发部') -
       (select avg(年龄) from 员工表 where 部门='商务部')
from dual

SQL计算不分步,无法引用已有的计算结果,需要将被引用语句重抄一遍。

SPL解法

A B
1 =demo.query(“select * from 员工表”)
2 =A1.select(部门:"研发部") =A2.len()
3 =A1.select(部门:"销售部") =A3.len()-B2
4 =A1.select(部门:"商务部") =A2.avg(年龄)-A4.avg(年龄)

SPL支持记录集合用作变量值,可以充分利用中间结果。