merge_query_result
2016-09-21 18:15:50 0 举报
`merge_query_result` 是一个用于合并多个查询结果的函数或方法。它通常在处理数据库查询时使用,当需要将多个查询的结果集合并成一个单一的结果集时,可以使用 `merge_query_result` 函数。这个函数可以自动处理不同查询结果之间的关联关系,将它们按照指定的条件进行合并,并返回一个包含所有查询结果的统一结果集。通过使用 `merge_query_result`,可以提高数据处理的效率和灵活性,使得对多个查询结果的处理更加方便和高效。
作者其他创作
大纲/内容
1)Multi-way Merge Sort对各子结果集总排序2)排序时,判断两行大小的依据为ORDER BY列的值(如存在多个,从左至右逐个比较)3)边排序边逐行输出,输出时,考虑LIMIT限制
case 1:无分组 + 有聚合函数,只输出一行
1)对全局分组后的结果集进行全局排序2)排序时,判断两行大小的依据为ORDER BY列的值(如存在多个,从左至右逐个比较)3)边排序边逐行输出,输出时,考虑LIMIT限制
有ORDER BY?
Y
生成全局结果集首行(恢复改写前字段,如AVG)
N
case 4:有分组,统一模仿单机逻辑处理(GROUP/AGGREGATE - ORDERBY - LIMIT)
1)逐行输出,输出时,考虑LIMIT限制
有AGGREGATE FUNC?
判断拆分SQL阶段所记录的AGGREGATE FUNC/GROUPBY/ORDERBY/LIMIT/FOUND_ROWS参数
1)校验各子结果集必须只有一行2)逐行逐列遍历子结果集,对于聚合字段,计算总聚合值,对于非聚合字段,使用第一行的值3)输出时,考虑LIMIT限制
1)Multi-way Merge Sort对各子结果集总排序2)排序时,判断两行大小的依据为GROUP BY列的值(如存在多个,从左至右逐个比较)3)排序时,同组的行一定相邻,可在排序同时合并为一行4)合并时,如有聚合字段,计数全局聚合值,非聚合字段取同组第一行的值
1)将各子结果集逐行输出2)输出时,考虑LIMIT限制
校验各子结果集首行一致
确保子结果集均无err_packet
case 2:无分组 + 无聚合+ 无排序
有GROUP BY?
case 3:无分组 + 无聚合+ 有排序
0 条评论
下一页