求教最优算法

测试数据如下:

imagepng

每个人(emp)在某个状态(status)下有开始日期(st)和结束日期 (et)。其中下一个开始日期 = 上一个结束日期 +1, 同一个人的日期段不会有重叠。

现在要统计:
指定时间段(如一年)内,每天各种状态下有多少人。

已尝试将 st 到 et 的日期补齐(新增相差天数条记录),然后 groups@m(日期,status;count(emp)), 但效率似乎不是很高。请教一下 SPL 还有没有更优实现。