按指定基准对齐的分组运算


【摘要】在分组时经常会要求结果集必须按基准集合的次序出现 , 这种对齐分组在日常统计中是很常见的 。 我们还能把对齐分组推广成更一般的枚举分组 。 如何简便快捷地处理对齐分组 , 这里为你全程解析 , 并提供 esProc 示例代码 。 按指定基准对齐的分组运算
对照一个基准集合 , 将待分组集合成员的某个字段或表达式与基准集合成员比较 , 相同者则分到同一个组中 , 最后拆分出来的组数和基准集合成员数是相同的 。 这种分组我们称为对齐分组 。 对齐分组可能会有空组 , 也可能有成员未分配到任何一个组中 。
1. 普通对齐分组
1.1 每组保留最多一个匹配成员
按某字段的指定顺序 , 将表中所有记录分组并汇总求和 。
【例 1】 根据相互关联的课程表和选课表 , 按课程表顺序查询有哪些课程无人选择:
按指定基准对齐的分组运算
本文插图
【SPL 脚本】
按指定基准对齐的分组运算
本文插图
A5的执行结果如下:
按指定基准对齐的分组运算
本文插图
1.2 每组保留所有匹配成员
按某字段的指定顺序 , 将表中所有记录分组并汇总求和 。
【例 2】 根据相互关联的员工表和部门表 , 按部门表中的部门顺序统计各部门人数:
按指定基准对齐的分组运算
本文插图
【SPL 脚本】
按指定基准对齐的分组运算
本文插图
A5的执行结果如下:
按指定基准对齐的分组运算
本文插图
1.3 不匹配记录放到新组
按某字段的指定顺序 , 将表中所有记录分组 , 不匹配记录放到新组 。
【例 3】 根据员工薪资表 , 统计 [California, Texas, New York, Florida] 的平均工资 , 未指定的州作为“Other”统计 。 员工薪资表部分数据如下:
按指定基准对齐的分组运算
本文插图
【SPL 脚本】
按指定基准对齐的分组运算
本文插图
A5的执行结果如下:
按指定基准对齐的分组运算
本文插图
2. 序号对齐分组
序号对齐分组 , 是指按照指定的序号进行分组 , 序号相同的成员分到同一组 。
2.1 每组保留最多一个匹配成员
在相互关联的两个表中 , 查找未被引用的记录 。
【例 4】 根据相互关联的销售表和客户表 , 顺序列出 2014 年没有销售记录的客户:
按指定基准对齐的分组运算
本文插图
【SPL 脚本】
按指定基准对齐的分组运算
本文插图
A6的执行结果如下:
按指定基准对齐的分组运算
本文插图
2.2 每组保留所有匹配成员
按序号将表中所有记录分组并汇总求和 。
【例 5】 根据订单表 , 顺序列出 2013 年每月的订单总数 。 订单表部分数据如下:
按指定基准对齐的分组运算
本文插图