【和SQL对比】针对子表分组
列出员工及其累计工作超过1年的城市数量。
SQL解法
select 姓名,count(*) 城市数
from (select 员工表.姓名 姓名,履历表.城市 城市
from 员工表,履历表 where 员工表.姓名=履历表.姓名
group by 姓名,城市
having sum(工作天数)>=365)
group by 姓名
使用多表连接的方法处理子表,分组后的结果集与子表记录数相同,需要再次分组才能把记录数归并成与主表一数。
SPL解法
| A | |
| 1 | =demo.query(“select * from 员工表”).new(姓名,履历.group(城市).count(~.sum(工作天数)>=365):城市数) |
将子表集合作为主表字段处理,如同普通集合一样分组过滤。
