如何基于分组为连续区间的子数据创建父组
多列连续分组数据的父组合并精简方案
我有多列数据,每列都有各自的连续序列分组,希望基于这些小分组创建父组来实现数据的精简呈现。数据代表隶属于不同Company(公司)、Department(部门)的Team(团队),以下是具体实现示例:
场景1:无数据间隙的完整匹配
原始数据
company_id department_id team_id 1 101 10 1 101 11 1 101 12 1 102 10 1 102 11 1 102 12 2 101 10 2 101 11 2 101 12 2 102 10 2 102 11 2 102 12
期望精简结果
company_ids department_ids team_ids 1-2 101-102 10-12
所有层级的序列完全匹配且无间隙,因此可以合并为一个父组,用起始值-结束值的格式表示连续序列的范围。
场景2:存在数据间隙的部分匹配
当部分Team未覆盖所有Department,或部分Department未覆盖所有Company时,需要拆分独立分组:
原始数据(移除了最后一条记录,导致公司2的部门2缺少team_id=12)
company_id department_id team_id 1 101 10 1 101 11 1 101 12 1 102 10 1 102 11 1 102 12 2 101 10 2 101 11 2 101 12 2 102 10 2 102 11 <last record removed>
期望精简结果
company_ids department_ids team_ids 1-1 101-102 10-12 2-2 101-101 10-12 2-2 102-102 10-11
拆分原则为:保持连续无间隙的序列为一个独立父组。若某分组下的子序列存在缺失(即不连续),则无法与其他完整序列合并,需单独成组;单一值的范围用相同值-相同值格式表示。最终分组的优先级不做要求,等效的分组形式均可行。
内容的提问来源于stack exchange,提问作者Paul M
相关产品推荐
相关产品推荐

