【和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):城市数)

将子表集合作为主表字段处理,如同普通集合一样分组过滤。

现金官网游戏下载