【和sql对比】按指定次序分组 | 润乾 -九游会登陆

按次序列出研发部、市场部、销售部、商务部、行政部的女员工人数和平均年龄

sql解法

with a as (select 1 序号, '研发部' 部门 from dual union
           select 2, '销售部'  from dual union
           select 3, '商务部'  from dual union
           select 4, '行政部'  from dual )
select a.部门,count(*) 人数,avg(b.年龄) 平均年龄
from a left join 员工表 b on (a.部门=b.部门)
where b.性别='女' group by a.序号,a.部门 order by a.序号

由于sql的集合无序,处理固定次序排序和分组一直是件麻烦事,需要人为增加序号字段保证结果集的正确次序。

spl解法

a
1 =["研发部","销售部","商务部","行政部"]
2 =demo.query(“select * from 员工表”).select(性别:"女").align(a1,部门)
3 =a2.new(a1(#):部门,~.len():人数,~.avg(年龄):平均年龄)

以有序集合为基础的spl加上特有的对齐运算处理这类计算就方便多了。

网站地图