spl与sql对比-九游会登陆
按在公司的工龄将员工分段分组统计每组的男女工人数
分段规则:一年之内、一至三年、三年以上、五年以上
分段规则:一年之内、一至三年、三年以上、五年以上
sql解法
with a as (select 1 序号,'一年以内' 分段,0 低限,1 高限 from dual union select 2,'一至三年',1,3 from dual union select 3,'三年以上',3,100 from dual union select 4,'五年以上',5,100 from dual) select 分段, (select count(*) from 员工表 where 工龄>=a.低限 and 工龄=a.低限 and 工龄 可重的条件分组使用连接来计算会相当麻烦,用子查询书写会清晰些,但又会导致同一子集被重复计算。
spl解法
a | b | |
1 | arg<1 | 一年以内 |
2 | arg>=1 && arg<3 | 一至三年 |
3 | arg>=3 | 三年以上 |
4 | arg>=5 | 五年以上 |
5 | =demo.query(“select * from 员工表”).enum@r([a1:a4],工龄) | =[b1:b4] |
6 | =a5.new(b5(#):分段, | ~.count(性别=="男"):男工数, |
7 | ~.count(性别=="女"):女工数) |
spl特有的条件分组很方便地完成此类计算,分组出来的子集合可重复利用。