1 .一种数据库多级分组方法,其特征在于,包括如下步骤:
对GROUP BY子句进行解析处理,生成多级分组列表和分组项汇总列表;
遍历分组项汇总列表,将所有分组项按预设顺序添加到GROUP BY计算前置流程的输出
项,对GROUP BY计算前置流程的输出项进行处理,得到GROUP BY输出项;
遍历多级分组列表,结合分组项汇总列表和GROUP BY的输出项计算每个分组的当前分
组GROUP BY结果集,将当前分组GROUP BY结果集进行汇总,得到GROUP BY结果集;
根据所述GROUP BY结果集,对所述查询中的表达式进行计算,得到表达式计算结果集;
对所述表达式计算结果集执行后续处理,得到最终结果集。
2 .根据所述权利要求1所述的数据库多级分组方法,其特征在于,所述对GROUP BY子句
进行解析处理,生成多级分组列表和分组项汇总列表,包括:
根据语法规则和解析设计规则对所述GROUP BY子句进行解析处理得到分组和分组项;
将所述分组添加到所述多级分组列表和将所述分组项按预设顺序添加到分组项汇总
列表。
3 .根据所述权利要求1所述的数据库多级分组方法,其特征在于,所述对GROUP BY子句
进行解析处理,生成多级分组列表和分组项汇总列表,还包括:
解析GROUP BY子句之后,检查所述多级分组列表中是否存在空分组,其中,所述空分组
为分组项个数为零的分组;
当所述多级分组列表中存在空分组时,对所述空分组增加NULL分组项,并将所述NULL
分组项增加到所述分组项汇总列表中。
4 .根据所述权利要求1所述的数据库多级分组方法,其特征在于,所述遍历所述分组项
汇总列表,将所有分组项按预设顺序添加到GROUP BY计算前置流程的输出项,对所述GROUP
BY计算前置流程的输出项进行处理,得到GROUP BY输出项,包括:
遍历所述分组项汇总列表,将所述分组项汇总列表的所有分组项按预设顺序添加到
GROUP BY计算前置流程的输出项;
基于所述GROUP BY计算前置流程的输出项加入聚合函数和删除聚合函数的参数表达
式,得到GROUP BY输出项。
5 .根据所述权利要求1所述的数据库多级分组方法,其特征在于,所述遍历多级分组列
表,结合分组项汇总列表和GROUP BY的输出项计算每个分组的当前分组GROUP BY结果集,
将当前分组GROUP BY结果集进行汇总,得到GROUP BY结果集,包括:
遍历所述多级分组列表,根据所述多级分组列表中每个分组获得当前分组项列表;
将所述当前分组项列表与所述分组项汇总列表进行差集计算,得到当前分组的剩余分
组项列表;
基于前置流程结果集,根据所述当前分组项列表进行分组处理,并对所述GROUP BY输
出项进行计算,得到当前分组的GROUP BY中间结果集;
根据所述当前分组的GROUP BY中间结果集和剩余分组项列表计算得到当前分组的
GROUP BY结果集;
将所述所有分组的GROUP BY结果集进行汇总,得到最终GROUP BY结果集。
6 .根据所述权利要求1所述的数据库多级分组方法,其特征在于,所述根据所述GROUP
BY结果集,对所述查询中的表达式进行计算,得到表达式计算结果集,包括:
权 利 要 求 书
1/2 页
2
评论