【和SQL对比】取出分组子集

公司中与其他人生日相同的员工

SQL解法

select * from 员工表
where to_char(出生日期,'MMDD') in
    (select to_char(出生日期,'MMDD') from 员工表
    group by to_char(出生日期,'MMDD') having count(*)>1)

有时分组的目的是为了获得分组的子集而非汇总值,SQL不能保存这种结果,只能转换思路从源集合中再次查询。

SPL解法

A
1 =demo.query(“select * from 员工表”).group(month(出生日期),day(出生日期))
2 =A1.select(~.len()>1).conj()

SPL可以保存分组结果集,继续处理就和常规集合一样。