发明内容
本发明的主要目的在于提供一种数据表中的数据聚合方法和装置,以解决现有技术对维度相差为1的两个指标表关联后的聚合计算结果不准确的问题。
为了实现上述目的,根据本发明的一个方面,提供了一种数据表中的数据聚合方法。
该数据表中的数据聚合方法包括:确定第一预设指标表和第二预设指标表,其中,第一预设指标表的维度与第二预设指标表的维度相差为1,且第一预设指标表的维度大于第二预设指标表的维度;确定第一维度主键,其中,第一维度主键为第一预设指标表和第二预设指标表共有的维度主键;通过第一维度主键将第一预设指标表和第二预设指标表进行关联,得到关联数据表;在关联数据表中确定第二预设指标表中的待聚合指标;统计第一维度主键对应的待聚合指标的聚合结果,其中,第一维度主键对应的待聚合指标的聚合结果为关联数据表中第一维度主键对应的待聚合指标的总和与第一维度主键在第一预设指标表行数中的个数的比值。
进一步地,通过第一维度主键将第一预设指标表和第二预设指标表进行关联,得到关联数据表包括:根据第一预设指标表确定关联数据表的行数,其中,关联数据表的行数与第一预设指标表的行数相同;根据第一预设指标表和待聚合指标的个数确定关联数据表的列数,其中,关联数据表的列数为第一预设指标表的列数与待聚合指标的个数的和;根据确定的关联数据表的行数和确定的关联数据表的列数得到关联数据表。
进一步地,统计第一维度主键对应的待聚合指标的聚合结果包括:获取第二预设指标表中第一维度主键对应的行在关联数据表中的重复次数,其中,第二预设指标表中第一维度主键对应的行在关联数据表中的重复次数等于第一维度主键在第一预设指标表中的个数;遍历关联数据表,对第一维度主键对应的待聚合指标进行求和,得到第一维度主键对应的待聚合指标的总和;计算第一维度主键对应的待聚合指标的总和与第二预设指标表中第一维度主键对应的行在关联数据表中的重复次数的比值;将比值作为第一维度主键对应的待聚合指标的聚合结果。
进一步地,在将比值作为第一维度主键对应的待聚合指标的聚合结果之后,该数据表中的数据聚合方法还包括:获取第一预设指标表和第二预设指标表中多个相同的维度主键;将第一预设指标表和第二预设指标表中多个相同的维度主键存入预设数据表中;在预设数据表中遍历多个相同的维度主键中除第一维度主键之外的维度主键,分别按照每个维度主键将第一预设指标表和第二预设指标表进行关联,得到多个中间数据表;将多个中间数据表添加到关联数据表中。
进一步地,在将多个中间数据表添加到关联数据表中之后,该数据表中的数据聚合方法还包括:遍历关联数据表;分别统计关联数据表中不同维度主键对应的待聚合指标的聚合结果;输出关联数据表中不同维度主键对应的待聚合指标的聚合结果。
为了实现上述目的,根据本发明的另一方面,提供了一种数据表中的数据聚合装置。
该数据表中的数据聚合装置包括:第一确定模块,用于确定第一预设指标表和第二预设指标表,其中,第一预设指标表的维度与第二预设指标表的维度相差为1,且第一预设指标表的维度大于第二预设指标表的维度;第二确定模块,用于确定第一维度主键,其中,第一维度主键为第一预设指标表和第二预设指标表共有的维度主键;第一关联模块,用于通过第一维度主键将第一预设指标表和第二预设指标表进行关联,得到关联数据表;第三确定模块,用于在关联数据表中确定第二预设指标表中的待聚合指标;第一统计模块,用于统计第一维度主键对应的待聚合指标的聚合结果,其中,第一维度主键对应的待聚合指标的聚合结果为关联数据表中第一维度主键对应的待聚合指标的总和与第一维度主键在第一预设指标表行数中的个数的比值。
进一步地,第一关联模块包括:第一确定子模块,用于根据第一预设指标表确定关联数据表的行数,其中,关联数据表的行数与第一预设指标表的行数相同;第二确定子模块,用于根据第一预设指标表和待聚合指标的个数确定关联数据表的列数,其中,关联数据表的列数为第一预设指标表的列数与待聚合指标的个数的和;得到模块,用于根据确定的关联数据表的行数和确定的关联数据表的列数得到关联数据表。
进一步地,第一统计模块包括:第一获取模块,用于获取第二预设指标表中第一维度主键对应的行在关联数据表中的重复次数,其中,第二预设指标表中第一维度主键对应的行在关联数据表中的重复次数等于第一维度主键在第一预设指标表中的个数;第一计算模块,用于遍历关联数据表,对第一维度主键对应的待聚合指标进行求和,得到第一维度主键对应的待聚合指标的总和;第二计算模块,用于计算第一维度主键对应的待聚合指标的总和与第二预设指标表中第一维度主键对应的行在关联数据表中的重复次数的比值;作为模块,用于将比值作为第一维度主键对应的待聚合指标的聚合结果。
进一步地,该数据表中的数据聚合装置还包括:第二获取模块,用于获取第一预设指标表和第二预设指标表中多个相同的维度主键;存储模块,用于将第一预设指标表和第二预设指标表中多个相同的维度主键存入预设数据表中;第二关联模块,用于在预设数据表中遍历多个相同的维度主键中除第一维度主键之外的维度主键,分别按照每个维度主键将第一预设指标表和第二预设指标表进行关联,得到多个中间数据表;添加模块,用于将多个中间数据表添加到关联数据表中。
进一步地,该数据表中的数据聚合装置还包括:遍历模块,用于遍历关联数据表;第二统计模块,用于分别统计关联数据表中不同维度主键对应的的待聚合指标的聚合结果;输出模块,用于输出关联数据表中不同维度主键对应的的待聚合指标的聚合结果。
通过本发明,采用确定第一预设指标表和第二预设指标表,其中,第一预设指标表的维度与第二预设指标表的维度相差为1,且第一预设指标表的维度大于第二预设指标表的维度;确定第一维度主键,其中,第一维度主键为第一预设指标表和第二预设指标表共有的维度主键;通过第一维度主键将第一预设指标表和第二预设指标表进行关联,得到关联数据表;在关联数据表中确定第二预设指标表中的待聚合指标;统计第一维度主键对应的待聚合指标的聚合结果,其中,第一维度主键对应的待聚合指标的聚合结果为关联数据表中第一维度主键对应的待聚合指标的总和与第一维度主键在第一预设指标表中的个数的比值,解决了现有技术对维度相差为1的两个指标表关联后的聚合计算结果不准确的问题。该发明获取计算第一预设指标表和第二预设指标表以相同维度主键关联后得到的关联数据表,然后计算粗粒度指标表即第二预设指标表在关联数据表中重复出现的次数,在对关联数据表中的待聚合指标进行聚合计算时,将粗粒度指标表即第二预设指标表的待聚合指标除以粗粒度指标表即第二预设指标表在关联数据表中重复出现的次数,得到了准确的聚合结果,进而达到了保证聚合结果准确性的效果。
具体实施方式
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
本发明旨在提供一种数据表中的数据聚合方法和装置。
图1是根据本发明实施例的数据表中的数据聚合方法的流程图。如图1所示,该方法包括如下的步骤S101至步骤S105:
步骤S101,确定第一预设指标表和第二预设指标表。
优选地,该实施例的数据表中的数据聚合方法中的第一预设指标表的维度与第二预设指标表的维度相差为1,且第一预设指标表的维度大于第二预设指标表的维度。比如,第一预设指标表为指标表a,第二预设指标表为指标表b,其中,指标表a关联2个维度,分别为广告、项目,指标表a中的指标为点击量;指标表b关联1个维度,为广告,指标表b中的指标为订单量。指标表中的维度主键即为维度对应的值,指标表中每个维度的主键值可以有一个也可以由多个。比如,指标表a中的维度广告的主键包括广告1,广告2;指标表b中的维度广告的主键包括广告1和广告2。指标表a如表1所示,指标表b如表2所示。
表1 指标表a
广告 |
项目 |
点击量 |
1 |
2 |
5 |
1 |
3 |
10 |
1 |
5 |
15 |
2 |
2 |
4 |
2 |
3 |
6 |
表2 指标表b
步骤S102,确定第一维度主键。
该实施例的数据表中的数据聚合方法中的第一维度主键为第一预设指标表和第二预设指标表共有的维度主键。比如,第一预设指标表为指标表a,第二预设指标表为指标表b,其中,指标表a关联2个维度,分别为广告、项目,指标表a中的指标为点击量;指标表b关联1个维度,为广告,指标表b中的指标为订单量。指标表中的维度主键即为维度对应的值,指标表a中的维度广告的主键包括广告1,广告2;指标表b中的维度广告的主键包括广告1和广告2,则可以确定第一维度主键为广告1或者广告2。
步骤S103,通过第一维度主键将第一预设指标表和第二预设指标表进行关联,得到关联数据表。
优选地,该实施例的数据表中的数据聚合方法中通过第一维度主键将第一预设指标表和第二预设指标表进行关联,得到关联数据表包括:根据第一预设指标表确定关联数据表的行数,其中,关联数据表的行数与第一预设指标表的行数相同;根据第一预设指标表和待聚合指标的个数确定关联数据表的列数,其中,关联数据表的列数为第一预设指标表的列数与待聚合指标的个数的和;根据确定的关联数据表的行数和确定的关联数据表的列数得到关联数据表。
比如,第一预设指标表为指标表a,第二预设指标表为指标表b,其中,指标表a关联2个维度,分别为广告、项目,指标表a中的指标为点击量;指标表b关联1个维度,为广告,指标表b中的指标为订单量。指标表中的维度主键即为维度对应的值,指标表a中的维度广告的主键包括广告1,广告2;指标表b中的维度广告的主键包括广告1和广告2,则第一维度主键为广告1或者广告2。以广告1和广告2关联指标表a和指标表b,得到关联数据表,如表3所示。
表3 关联数据表
广告 |
项目 |
点击量 |
订单量 |
1 |
2 |
5 |
2 |
1 |
3 |
10 |
2 |
1 |
5 |
15 |
2 |
2 |
2 |
4 |
5 |
2 |
3 |
6 |
5 |
步骤S104,在关联数据表中确定第二预设指标表中的待聚合指标。
在通过第一维度主键将第一预设指标表和第二预设指标表进行关联,得到关联数据表之后,如表3所示。在关联数据表中确定待聚合指标,其中,待聚合指标可以是关联数据表中的指标中的任意一个,比如,将订单量作为待聚合指标。
步骤S105,统计待聚合指标的聚合结果。
优选地,该实施例的数据表中的数据聚合方法中的第一维度主键对应的待聚合指标的聚合结果为关联数据表中第一维度主键对应的待聚合指标的总和与第一维度主键对应的在第一预设指标表中的个数的比值。具体地,统计第一维度主键对应的待聚合指标的聚合结果可以包括:获取第二预设指标表中第一维度主键对应的行在关联数据表中的重复次数,其中,第二预设指标表中第一维度主键对应的行在关联数据表中的重复次数等于第一维度主键在第一预设指标表中的个数;遍历关联数据表,对第一维度主键对应的待聚合指标进行求和,得到第一维度主键对应的待聚合指标的总和;计算第一维度主键对应的待聚合指标的总和与第二预设指标表中第一维度主键对应的行在关联数据表中的重复次数的比值;将比值作为第一维度主键对应的待聚合指标的聚合结果。该实施例的数据表中的数据聚合方法提高了关联数据表中数据聚合结果的准确度。
比如,如表3所示,在关联数据表中确定订单量为待聚合指标,广告1的订单量和总为6,广告1在指标表a中的个数为3,则广告1对应的订单量为2,广告2的订单量总和为10,广告2在指标表a中的个数为2,则广告2对应的订单量为5。
当第一预设指标表和第二预设指标表共有的关联主键有多个时,按照该实施例的数据表中的数据聚合方法可以分别按照共有的关联主键进行关联,得到多个关联数据表,从而实现对多个关联数据表中的数据进行聚合运算。优选地,在将比值作为第一维度主键对应的待聚合指标的聚合结果之后,该实施例的数据表中的数据聚合方法还包括:获取第一预设指标表和第二预设指标表中多个相同的维度主键;将第一预设指标表和第二预设指标表中多个相同的维度主键存入预设数据表中;在预设数据表中遍历多个相同的维度主键中除第一维度主键之外的维度主键,分别按照每个维度主键将第一预设指标表和第二预设指标表进行关联,得到多个中间数据表;将多个中间数据表添加到关联数据表中。
在将多个中间数据表添加到关联数据表中之后,该实施例的数据表中的数据聚合方法还包括:遍历关联数据表;分别统计关联数据表中不同维度主键对应的待聚合指标的聚合结果;输出关联数据表中不同维度主键对应的待聚合指标的聚合结果。其中,关联数据表中不同维度主键对应的待聚合指标的聚合结果可以以可视化的方式,比如图表,进行数据,便于数据分析指直观地进行统计分析。
该实施例的数据表中的数据聚合方法采用确定第一预设指标表和第二预设指标表,其中,第一预设指标表的维度与第二预设指标表的维度相差为1,且第一预设指标表的维度大于第二预设指标表的维度;确定第一维度主键,其中,第一维度主键为第一预设指标表和第二预设指标表共有的维度主键;通过第一维度主键将第一预设指标表和第二预设指标表进行关联,得到关联数据表;在关联数据表中确定第二预设指标表中的待聚合指标;统计第一维度主键对应的待聚合指标的聚合结果,其中,第一维度主键对应的待聚合指标的聚合结果为关联数据表中第一维度主键对应的待聚合指标的总和与第一维度主键在第一预设指标表中的个数的比值,解决了现有技术对维度相差为1的两个指标表关联后的聚合计算结果不准确的问题,达到了提高数据表中数据聚合结果准确性的效果。
从以上的描述中,可以看出,本发明实施例的数据表中的数据聚合方法通过采用将具有相同维度主键,且所关联的维度相差为1的两个指标表进行关联,得到关联数据表。在计算关联数据表中待聚合指标的聚合结果时,将粗粒度指标表即维度数量较小的指标表中的待聚合指标除以粗粒度指标表在关联数据表中重复出现的次数,解决了现有技术对维度相差为1的两个指标表关联后的聚合计算结果不准确的问题,达到了提高关联数据表中数据聚合结果的准确性的效果。
需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本发明实施例还提供了一种数据表中的数据聚合装置。需要说明的是,该数据表中的数据聚合装置可以用于执行本发明实施例的数据表中的数据聚合方法。
图2是根据本发明实施例的数据表中的数据聚合装置的示意图。如图2所示,该装置包括:第一确定模块10,第二确定模块20,第一关联模块30,第三确定模块40和第一统计模块50。
第一确定模块10,用于确定第一预设指标表和第二预设指标表,其中,第一预设指标表的维度与第二预设指标表的维度相差为1,且第一预设指标表的维度大于第二预设指标表的维度。
第二确定模块20,用于确定第一维度主键,其中,第一维度主键为第一预设指标表和第二预设指标表共有的维度主键。
第一关联模块30,用于通过第一维度主键将第一预设指标表和第二预设指标表进行关联,得到关联数据表。
优选地,第一关联模块30包括:第一确定子模块,用于根据第一预设指标表确定关联数据表的行数,其中,关联数据表的行数与第一预设指标表的行数相同;第二确定子模块,用于根据第一预设指标表和待聚合指标的个数确定关联数据表的列数,其中,关联数据表的列数为第一预设指标表的列数与待聚合指标的个数的和;得到模块,用于根据确定的关联数据表的行数和确定的关联数据表的列数得到关联数据表。
第三确定模块40,用于在关联数据表中确定第二预设指标表中的待聚合指标。
第一统计模块50,用于统计第一维度主键对应的待聚合指标的聚合结果,其中,第一维度主键对应的待聚合指标的聚合结果为关联数据表中第一维度主键对应的待聚合指标的总和与第一维度主键在第一预设指标表的个数的比值。
优选地,第一统计模块50包括:第一获取模块,用于获取第二预设指标表中第一维度主键对应的行在关联数据表中的重复次数,其中,第二预设指标表中第一维度主键对应的行在关联数据表中的重复次数等于第一维度主键在第一预设指标表的个数;第一计算模块,用于遍历关联数据表,对第一维度主键对应的待聚合指标进行求和,得到第一维度主键对应的待聚合指标的总和;第二计算模块,用于计算第一维度主键对应的待聚合指标的总和与第二预设指标表中第一维度主键对应的行在关联数据表中的重复次数的比值;作为模块,用于将比值作为第一维度主键对应的待聚合指标的聚合结果。
优选地,该实施例的数据表中的数据聚合装置还包括:第二获取模块,用于获取第一预设指标表和第二预设指标表中多个相同的维度主键;存储模块,用于将第一预设指标表和第二预设指标表中多个相同的维度主键存入预设数据表中;第二关联模块,用于在预设数据表中遍历多个相同的维度主键中除第一维度主键之外的维度主键,分别按照每个维度主键将第一预设指标表和第二预设指标表进行关联,得到多个中间数据表;添加模块,用于将多个中间数据表添加到关联数据表中。
优选地,该实施例的数据表中的数据聚合装置还包括:遍历模块,用于遍历关联数据表;第二统计模块,用于分别统计关联数据表中不同维度主键对应的待聚合指标的聚合结果;输出模块,用于输出关联数据表中不同维度主键对应的待聚合指标的聚合结果。
该实施例的数据表中的数据聚合装置包括第一确定模块10,第二确定模块20,第一关联模块30,第三确定模块40和第一统计模块50。通过该实施例的数据表中的数据聚合装置解决了现有技术对维度相差为1的两个指标表关联后的聚合计算结果不准确的问题。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。