【和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支持记录集合用作变量值,可以充分利用中间结果。