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特有的条件分组很方便地完成此类计算,分组出来的子集合可重复利用。

网站地图