CN106599039A - 一种支持关系数据库数据自由组合嵌套的统计表述方法 - Google Patents
一种支持关系数据库数据自由组合嵌套的统计表述方法 Download PDFInfo
- Publication number
- CN106599039A CN106599039A CN201610975724.7A CN201610975724A CN106599039A CN 106599039 A CN106599039 A CN 106599039A CN 201610975724 A CN201610975724 A CN 201610975724A CN 106599039 A CN106599039 A CN 106599039A
- Authority
- CN
- China
- Prior art keywords
- row
- user
- data
- statistical
- sequence
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 82
- 230000008569 process Effects 0.000 claims abstract description 13
- 230000006870 function Effects 0.000 claims abstract description 7
- 238000004422 calculation algorithm Methods 0.000 claims description 37
- 238000006116 polymerization reaction Methods 0.000 claims description 32
- 230000011218 segmentation Effects 0.000 claims description 15
- 230000004931 aggregating effect Effects 0.000 claims description 11
- 238000004364 calculation method Methods 0.000 claims description 11
- 230000008859 change Effects 0.000 claims description 8
- 230000000694 effects Effects 0.000 claims description 8
- 230000008520 organization Effects 0.000 claims description 6
- 239000011159 matrix material Substances 0.000 claims description 4
- 238000012986 modification Methods 0.000 claims description 4
- 230000004048 modification Effects 0.000 claims description 4
- 238000012545 processing Methods 0.000 claims description 4
- 238000013461 design Methods 0.000 claims description 3
- 230000000007 visual effect Effects 0.000 claims description 3
- 230000027455 binding Effects 0.000 claims description 2
- 238000009739 binding Methods 0.000 claims description 2
- 230000002452 interceptive effect Effects 0.000 claims description 2
- 230000004044 response Effects 0.000 claims description 2
- 238000012216 screening Methods 0.000 claims description 2
- 238000009434 installation Methods 0.000 claims 1
- 230000010354 integration Effects 0.000 claims 1
- 238000007619 statistical method Methods 0.000 abstract description 4
- 238000010586 diagram Methods 0.000 description 5
- 230000018109 developmental process Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 238000013079 data visualisation Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 230000004899 motility Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000003442 weekly effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种支持关系数据库数据自由组合嵌套的统计表述方法,其过程包括源表定制、统计表定制和输出定制,采用该表述方法定义统计图表的步骤为:选择数据库,程序显示数据库中包含的所有表及字段,用户选择其需要的表及字段,程序提示用户确认表间关联关系,点击确定即可生成源表;有了源表用户便可以根据自己的需求组织出各种统计表,本表述方法通过对用户统计需求进行分解。本发明可将其应用于统计图表组件的实现,功能空前强大,几乎任何统计图表都可以采用该统计表述方式得到实现,可将其应用于统计图表***的实现,统计图表定制过程变成简单清晰的过程,支持用户直接对数据库中的任意相关数据进行统计分析。
Description
技术领域
本发明涉及数据可视化领域,尤其是一种支持关系数据库数据自由组合嵌套的统计表述方法。
背景技术
当前缺乏一套通用性强、能广泛应用于各种关系数据库的统计组件或软件,大量统计图表都由程序员编写,从SQL语句到程序处理到界面显示等,必须花费大量开发时间和精力。相关各种技术工具,不是艰深难懂就是功能太过简单薄弱,比如SAS和Matlab,它们的确能提供足够强大的统计功能,但是很多时候你必须使用它们的编程语言才能完成你想要的图表,对于完成统计图表这个目的来说,使用这些工具和直接使用其他编程语言开发相比并没有带来多大的便利;而其他低端一点的工具,如Excel等,功能非常薄弱,且表述复杂,难以与其他***集成。所有这些问题的根本原因在于我们缺乏一套能清晰表达统计需求并进行处理的工具,因为统计需求复杂多样,所以找到一种足够强大的通用的统计表述方法本身是一个很大的难点,而确保程序能够依据这种表述方法进行计算并输出结果更是要考虑很多纷繁复杂的逻辑问题。
因此,对于上述问题,有必要构建一套通用而强大的统计表述方式,用户可用它得到各种类型的统计图表,解决了绝大多数的统计需求。
发明内容
本发明目的是克服现有技术中的不足,提供了一套通用而强大的统计表述方法,在该表述法中大量统计复杂性被封装隐匿起来由程序处理,减少人工错误和操作难度。
为了解决上述技术问题,本发明是通过以下技术方案实现:
一种支持关系数据库数据自由组合嵌套的统计表述方法,包括源表定制、统计表定制、输出定制,所述步骤为:(1)点击新建源表,输入源表名称,并选择数据库,点击下一步;(2)程序显示被选择数据库中包含的所有表及字段供用户选择,用户勾选所需数据,点击下一步;(3)程序提示被选择的表间关联关系供用户确认,若正确则点击下一步,否则用户可修改表间关联关系;(4)最后确认被选择的数据,点击确定完成源表定制;(5)用户可将源表中的列拉入统计表中,通过本表述方法提供的10多个基本概念:一般列、汇总列、聚合计算列、展开列、合并计算列、算法、分段、排序、显示项限制、链接、输出格式化、条件、记录数等,进行高度自由的组合嵌套,表述出各种复杂的统计需求;(6)点击运行,程序生成统计表运行结果,默认以表格形式输出,用户可以选择其他图表输出形式。
具体概念解析如下:(1)一般列:在本统计表述方法中,一般列具有键值意义,即一般列中的重复记录会被过滤,除非同样具有键值意义的汇总列不重复,此特性确保统计结果中每一行记录的非计算列都是唯一的;
(2)汇总列:在本统计表述方法中,汇总列具有键值意义,即汇总列中的重复记录会被过滤,除非同样具有键值意义的一般列不重复,此特性确保统计结果中每一行记录的非计算列都是唯一的。汇总列可以设置一个或多个汇总算法,每个汇总算法会产生一个汇总行;一个统计表中可以设置多个汇总列,当设置多个汇总列时,用户可以为各汇总列设置不同的汇总级别,程序会从低级别往高级别依次进行汇总计算;如果用户不设置汇总级别,或者汇总级别中存在重复,那么在统计表中次序排后的列会被优先进行汇总;在本统计表述方法中,所有汇总行数据是从已经得到计算的非汇总行数据中计算而来;
(3)聚合计算列:在本统计表述方法中,可以给任何列设置聚合算法,程序会将该列的所有值进行聚合计算(需要说明的是,列的数据类型不影响其是否可以设置为聚合计算列,而只影响可供选择的聚合算法),聚合计算列必须设置一个或多个聚合算法,若聚合算法有多个,表格形式输出时会以子列形式显示。若统计表还包含一般列和汇总列,那么程序会以一般列和汇总列的值唯一为依据进行聚合计算,与没有一般列相比,就如同以行的方式切分了计算列的数据;(4)展开列:在本统计表述方法中,展开列将列的内容可作为列名生成多个列显示,展开列可以嵌套展开列或聚合计算列,程序允许用户根据需要任意多层次嵌套列,且每个嵌套列都可以有一个或多个子列,嵌套列分支的深度不必相等,但每一嵌套列分支都必须有且只有一个聚合计算列。假如将以上一般列和汇总列视为以行的方式切分计算列数据,那么展开列则是以列的方式切分了计算列的数据;(5)合并计算列:在本统计表述方法中,可以将2个或多个源表中的列合并为统计表中的一个列,并设置合并算法;(6)算法:在本统计表述方法中,可将以上概念视为相关性数据的组织形式,则组织之后的输出表格的单元格按其存放的数据可以分为三类,一类存放普通值(表头和主键列),一类存放数组(聚合计算列),另一类存放矩阵(合并计算列),算法则是将数组或矩阵变成一个值输出的方法。***预定义的算法有合计求和(sum)、求方差(var)、求标准差(stand)、求乘积(prod)、取均值(mean)、取最大值(max)、取最小值(min)、取第一个元素(pick1st)、当成字符串并用逗号连接(strcat)、求取值计数(count)等,用户可以选择以上算法,也可以采用公式的方式自定义算法,***支持以下操作符*(乘以)、+(加上)、-(减去)、/(除以)、^(乘方),并且用户可在公式中调用***预定义算法(如上sum、var等);(7)分段:在本统计表述方法中,当用户不关心具体准确取值,或者需要依据某种分类来显示数据,则可以对取值进行分段处理,其支持线性分段(即将取值按某些特定点分成几个段),集合分段(即将可能的取值集合划分为几个小集合,比如国家列中选择美国、日本为美日,别的都分为其他国家),日期分段(允许用户对日期信息进行提取,比如用户可选择按日期中的月份分段,或按年分段,或按年月分段),可以形象的看,分段是一个处理函数,它将源表数据变成另一个值看待并将依据它进行统计处理,而不再关心其原值;(8)排序:在本统计表述方法中,允许对统计表所包含的列设置排序。若为汇总列或一般列,则按普通规则进行排序,并遵从如下规则:汇总级别高的排序优先于汇总级别低的排序,所有汇总列排序优先于一般列排序,若多个一般列设置了排序,则排序优先级大的优先排序,若多个一般列设置了排序且优先级存在重复,则先出现的列优先排序;若为聚合计算列设置排序,必须设置其依据的聚合算法,除此之外排序规则可视同一般列的排序规则,另外,不同于一般列的一点是,聚合计算列排序可以改变汇总列的排序,条件是汇总列不设置排序,而且聚合计算列设置排序且设置依据的汇总算法,这样用户可以让汇总列按这个聚合列的汇总行的计算结果进行排序,并且每个汇总级别的汇总列会都遵守这个规则,若有多个聚合计算列排序规则,其规则类同上面提到的多个一般列设置排序的规则;若为展开列设置排序,每一层级的展开列会按其设置进行排序,而不影响其父级展开列的排序也不影响其子级展开列的排序;若为展开计算列设置排序,必须设置其依据的聚合算法,与展开列的排序不同的是,展开计算列的排序会改变其直接父级展开列的排序,这也是展开计算列排序的意义和作用,条件是其直接父级展开列不能设置排序规则。另一点规则是,所有汇总列、一般列、展开列的排序都可以设置排序时依据其值还是依据其显示文本,有些单元格的值和显示文本是一致的,但是很多情况下并不一致;(9)显示项限制:在本统计表述方法中,允许对统计表所包含的列显示项数量限制。若为汇总列设置显示限制数n,那么该列最多只显示n个汇总项;若为一般列或聚合计算列设置显示限制数n,那么每一个汇总项里面最多只有n行数据,若一般列或聚合计算列中有多个设置了显示数,则取最小的一个;若为展开列设置显示限制数n,那么该展开列最多只产生n个展开项;若为展开计算列设置显示限制数n,与对其直接父级设置限制显示数n的效果是一样的。另外,所有列的显示项限制通常会与排序同时使用,程序先执行排序,再执行显示项限制。显示项限制不会影响汇总行数据,可以将其看成隐藏部分数据的显示,而不是删除它们,所以不会影响汇总结果;(10)链接:在本统计表述方法中,允许用户给统计表所包含的列设置链接。链接包含***内链接和***外链接,***内链接是跳转或打开在本***中定义的其他任何图表,包括自己,而***外链接是跳转或打开本***之外的地址;若选择***内链接,用户必须选择链接的统计表以及其输出形式;用户可以为链接选择打开方式:跳转或弹出层。用户点击链接会打开新的图表,新的图表在数据上与链接是对应的,用户在点击链接时,程序会将被点击的单元格所在的行的主键列及其取值构成链接条件(如果是展开列单元格的话,还会将单元格所在列的展开列及其取值也构成链接条件)发送给新的图表,若是***内链接,***内图表都会正确解读这些条件,若是***外链接,那么链接的外部***必须自己处理该条件(若放弃处理,同一列的链接打开都会是同样的数据)。另外,每个主键列和展开列都是绑定一个源列,在链接跳转的时候,条件中的列名是其源表列名,而不是统计表列名,而接收该条件的统计表进行条件解释的时候,也将其配备源表列名而不是匹配统计表列名,所以程序不要求统计表包含链接的源列一样能够显示对应数据,但是程序要求源表中要有链接的源列,当找不到时,程序会忽略该条件分支,这可能是用户有意需要忽略的,也可能不是,程序将提示你所选择链接的统计表中没有对应的源列,是否修改链接目标。在链接打开的图表中点击链接打开链接的链接时,原链接产生的条件会叠加到新链接的条件中,所以链接的链接的数据是在双重条件限制下的数据,以此类推,本统计表述方法的链接可以无穷多层,只要用户需要;(11)输出格式化:本统计表述方法支持简单的格式化,也支持复杂的条件格式化,如v>200?<b>{:.2f}</b>\nv>0?{:.2f},该表达式中v代表表格取值,?号之前为条件表达式,问号之后为格式化表达式,每一行代表一个条件格式化,程序从上往下对值进行判断,若符合条件则取其后面格式对值进行格式化,并终止执行;(12)记录数:在本统计表述方法中,在定制源表时我们会看到每个表包含字段中多了一个记录数,其实该记录数并不在数据库的表中,它是虚拟出来的列,用户选择它加入源表后需要的时候就拉入统计表中,它将自动计算源表数据的记录数;(13)自动生成周期:在本统计表述方法中,对于统计表来说,通常用户关心的是过去一段时间的情况,比如前一小时、前一天、前一周、前一月等,很少情况下用户需要查看当下数据情况,对于这些图表,用户可以设置自动生成周期,这样在用户查看之前数据就已经自动生成不需要再运行统计,提高响应时间和运行效率。本***支持强大的自动生成周期定义,用户可以指定自动生成周期,还可以设置约束时间参照的列,以及时间长度。假如用户只设定生成周期,比如每月,那统计表每月运行一次,其数据内容包括运行时间之前的所有数据;假如用户只设置约束时间、时间长度及单位,那么统计不会自动运行,但是在用户调用查看时会以该时间约束为条件限制查询数据;假如用户既设定生成周期,而且设置约束时间、时间长度及单位,那么每个生成周期统计表自动运行并且以用户设置的时间约束为条件限制查询数据;(14)二次统计:在本统计表述方法中,对于不包含展开列的统计表,允许进行二次统计,二次统计会将统计结果作为源表,用户可以重新使用以上概念自由组织统计表。
优选地,统计结果通过特殊的插件处理在用户浏览器显示,该插件主要包含一个特殊的HTML页面,这个HTML页面特殊之处是其包含一些未确定的变量标记,这些变量会在使用者调用时要求输入值;另一个特殊之处是包含一些预定义变量标记,其分别代表统计图表名称、统计条件和样式表名称,这些变量在程序运行时会根据情况自动赋值。除此之外,这个HTML页面遵从HTML规范,可以调用JS程序为用户绘制各种图表。
优选地,所述程序表间关联关系以最简洁形式显示,比如用户选择A和B,程序提示用户A和B是否通过C关联起来,但用户不需要关心其关联方式,比如左关联右关联等。
优先地,所述源表的列被拉入统计表中可以设置为一般列、汇总列、聚合计算列、展开列、或合并计算列,其数据类型并不制约其能被设置为哪些列,而只制约影响其能进行的算法。
优先地,所述展开列可以嵌套展开列、聚合计算列或合并计算列,可以多层次嵌套。
优先地,所述聚合计算列、合并计算列或汇总列可以包含一个或多个算法。
优先地,所述一般列、汇总列、聚合计算列、展开列、合并计算列可以设置分段、排序、显示项限制、链接、输出格式化等。
优选地,所述条件分为源表条件和统计表条件,源表条件在进行统计之前对数据源数据进行筛选,统计表条件在进行统计之后对统计结果进行筛选。
优先地,记录数会自动记录源表数据记录数量,即源表行数。
优选地,输出以特殊格式的JSON和DHTML形式输出,浏览器先等到一个HTML页面,由其告知浏览器下一步获取的JSON数据和页面绘制程序需要的JS、CSS和图片文件等。
本发明的有益效果是:支持该统计表述法的软件相较于现有的软件,用户不再需要理解很多关于数据库的概念,用户只需知道从哪里能找到其需要的数据,以及这些数据之间应该有怎样的关联关系,然后用户便可按本发明提供概念自由组织出各种复杂的统计图表,从而大幅度降低统计分析的实现难度。
可将其应用于统计图表组件的实现,相较现有图表组件来说,它功能空前强大,几乎任何统计图表都可以采用该统计表述方式得到实现,并且几乎统计图表的任何形式和样式上的细节都可以由用户定制,同时可将统计图表统一管理,维护方便,这些特性大幅度提高了统计图表组件化程度,大幅度降低统计图表开发和维护成本,缩短开发周期;
可将其应用于统计图表***的实现,相较现有其他数据可视化工具,它让统计图表定制过程变成简单清晰的过程,它支持用户直接对数据库中的任意相关数据进行统计分析,从而多角度多维度直观的了解数据库相关***的运行情况,大幅度降低数据分析所要求的专业知识和专业水平。
以下将结合附图对本发明的构思、具体结构及产生的技术效果作进一步说明,以充分地了解本发明的目的、特征和效果。
附图说明
图1是本发明的方法流程图;
图2是本发明实施例的输入源表基本信息;
图3是本发明实施例的新建源表示意图;
图4是本发明实施例的新建源表确认关联关系表示意图;
图5是本发明实施例的编辑源列信息表示意图;
图6是本发明实施例的源表控件示意图;
图7是本发明实施例的源表控件示意图;
图8是本发明实施例的源表控件示意图;
图9是本发明实施例的成交额统计示意图;
图10是本发明实施例的图表运行预览示意图;
图11是本发明实施例的产品员工统计表;
图12是本发明实施例的图表定制管理器;
图13是本发明实施例的图表输出页编辑器;
图14是本发明实施例的插件管理器。
具体实施方式
以下结合附图对本发明的实施例进行详细说明,但是本发明可以由权利要求限定和覆盖的多种不同方式实施。
实现案例一,所述源表定制步骤为(1)点击新建源表按钮,弹出对话框中输入源表基本信息,并选择数据库,如图2所示:
(2)点击下一步,弹出对话框显示数据库包含的所有表和表包含的列,用户选择其需要数据,如图3所示:
(3)点击下一步,程序提示被用户选择的表间的关联关系,若有不符合用户需求的,右键点击该关联线段,弹出右键菜单中设置其为“末后连接”,然后空白处点击右键选择重新规划,程序自动规划新的连接;图中两个对象只有一个连接键的不显示连接键,若有多个才提示用户,比如产品和订单明细,显然是订单明细中包含产品信息,不需要提示,用户鼠标移到关系线段上才显示连接键;而订单和员工有多个连接关系,比如订单中的业务员或审核员之类都与员工关联,程序就会提示关联键,以便用户确认,如图4所示:
(4)点击下一步,提示用户确认其所选择的数据列表,用户可修改,但不可增加删除,如图5所示(图中SQL列是某一列的关联外键,在统计表显示中将ID变成友好的文本标题正是采用它提供的信息,统计表中在按集合分组(数据分段中的概念)时也是从它得到源列的取值范围,为了给高级用户保留灵活性,所以这里采用标准SQL表述,初级用户是可以不管它的,这个SQL会自动从本***的关联列设置中获得,一般它不需要更改),如图6所示:
(5)点击完成,源表加载到统计表定制界面中的源表控件中,如图7所示:
实施案例二,所述统计表组织表述中的分段步骤为:(1)选择分段类型(线性分段、按集合分段、或按时间属性分段),(2)选择分段方法,如图8和9所示:运行效果:
实施案例三,所述统计表组织表述中的生成周期设置步骤为:(1)选择约束时间,源表中任何日期类型的列都可以被选择约束时间(不要求其出现在统计表的列中),(2)输入时间长度并选择时间单位,(3)设置生成周期(每年、每月、每周、每日等),如图10所示:
进一步的,所述统计表组织表述中的生成周期设置,(1)若用户只设置生成周期,不设置约束时间、时间长度和时间单位,则***根据生成周期自动运行生成统计表,其数据为运行时源表所有数据,不受时间约束筛选;(2)若用户设置约束时间、时间长度和时间单位,不设置生成周期,则***不会自动运行生成统计表,而是在用户查询时才运行生成统计表,其数据会根据约束时间进行约束筛选;(3)若用户设置生成周期、约束时间、时间长度和时间单位,则***定期自动生成符合时间约束的统计表。
实施案例四,所述统计表组织表述中的链接设置步骤为:(1)选择链接类型,(2)若步骤一选择***内链接,则必须选择***中已定义的统计表和显示方式,若步骤一选择***外链接,则必须输入链接地址,并保证该地址有效,(3)选择打开方式,(4)若步骤3选择弹出框方式打开则必须输入弹出框窗口大小,若选择跳转方式打开则不需要,如图11所示:
点击链接的效果:
实施案例五,所述输出插件选择步骤为:(1)点击输出列表上方新增按钮,在弹出对话框中左边树状控件中选择输出插件,填写右边基本信息,根据要求输出参数;(2)点击确定按钮,相应图表便会添加到输出列表中。如图12所示:
进一步的,所述输出列表中的图表可以被用户修改,点击输出列表上方编辑按钮,弹出输出插件编辑界面,在此界面用户可以修改输出列表中选中图表的输出处理程序和样式表等,如图13所示:
进一步的,所述输出插件调用时要求输入的参数为插件作者所定义,用户可以在插件管理界面对其进行新增、修改或删除操作,如图14所示:
本发明的有益效果是:相较现有技术,本发明所描述统计表述方法将很多未被封装的统计复杂性很好的隐匿起来,交由程序处理,减少人工错误和操作难度,让图表定制功能更加强大,过程更加简洁高效。用户可以从数据库中选择任意相关数据并以自己希望的形式组织起来得出其需要的统计图表,这将大幅度降低用户对关系数据库进行统计分析的成本;采用本发明所描述的统计表述方法可以实现一个通用性极强的统计图表组件,从而做到一次编写,广泛应用,帮助广大软件开发商降低软件开发成本,缩短开发周期,高效率高质量的实现各种统计需求,同时专业的处理能大幅度提高终端用户体验。
以上详细描述了本发明的较佳具体实施例。应当理解,本领域的普通技术人员无需创造性劳动就可以根据本发明的构思做出诸多修改和变化。因此,凡本技术领域中技术人员依本发明的构思在现有技术的基础上通过逻辑分析、推理或者有限的实验可以得到的技术方案,皆应在由权利要求书所确定的保护范围内。
Claims (10)
1.一种支持关系数据库数据自由组合嵌套的统计表述方法,其特征在于:源表定制只需勾选数据库中的任意相关数据,并确定被选择的表间关联关系,所述方法步骤为:
(1)点击新建源表,选择数据库,点击下一步;
(2)程序显示被选择数据库中包含的所有表及字段供用户选择,用户勾选所需数据,点击下一步;
(3)程序提示被选择的表间关联关系供用户确认,若正确则点击下一步,否则用户可让程序重新规划表间关联,或手动修改表间关联关系;
(4)最后确认已选择的数据,点击确定完成源表定制。
2.如权利要求1所述的一种支持关系数据库数据自由组合嵌套的统计表述方法:其特征在于:通过对用户统计需求进行分解,创造整合出10多个基本概念:一般列、汇总列、聚合计算列、展开列、合并计算列、算法、分段、排序、显示项限制、链接、输出格式化、记录数等,这些概念构成了一个强大的基本完整的统计表述体系,通过它们之间高度自由的组合嵌套,可以直观清晰的表述出各种复杂的统计需求,若未来其他同类软件中若包含其中超过80%的重复概念,或者其若出现了分段、链接、自动生成周期这些本表述法中独创的概念所描述的功能设计,应视为侵权。具体概念解析如下:
(1)一般列:在本统计表述方法中,一般列具有值意义,即一般列中的重复记录会被过滤,除非同样具有键值意义的汇总列不重复,此特性确保统计结果中每一行记录的非计算列都是唯一的;
(2)汇总列:在本统计表述方法中,汇总列具有键值意义,即汇总列中的重复记录会被过滤,除非同样具有键值意义的一般列不重复,此特性确保统计结果中每一行记录的非计算列都是唯一的。汇总列可以设置一个或多个汇总算法,每个汇总算法会产生一个汇总行;一个统计表中可以设置多个汇总列,当设置多个汇总列时,用户可以为各汇总列设置不同的汇总级别,程序会从低级别往高级别依次进行汇总计算;如果用户不设置汇总级别,或者汇总级别中存在重复,那么在统计表中次序排后的列会被优先进行汇总;在本统计表述方法中,所有汇总行数据是从已经得到计算的非汇总行数据中计算而来;
(3)聚合计算列:在本统计表述方法中,可以给任何列设置聚合算法,程序会将该列的所有值进行聚合计算(需要说明的是,列的数据类型不影响其是否可以设置为聚合计算列,而只影响可供选择的聚合算法)。聚合计算列必须设置一个或多个聚合算法,若聚合算法有多个,表格形式输出时会以子列形式显示。若统计表还包含一般列和汇总列,那么程序会以一般列和汇总列的值唯一为依据进行聚合计算,与没有一般列相比,就如同以行的方式切分了计算列的数据;
(4)展开列:在本统计表述方法中,展开列将列的内容可作为列名生成多个列显示,展开列可以嵌套展开列或聚合计算列,程序允许用户根据需要任意多层次嵌套列,且每个嵌套列都可以有一个或多个子列,嵌套列分支的深度不必相等,但每一嵌套列分支都必须有且只有一个聚合计算列,假如将以上一般列和汇总列视为以行的方式切分计算列数据,那么展开列则是以列的方式切分了计算列的数据;
(5)合并计算列:在本统计表述方法中,可以将2个或多个源表中的列合并为统计表中的一个列,并设置合并算法;
(6)算法:在本统计表述方法中,可将以上概念视为相关性数据的组织形式,则组织之后的输出表格的单元格按其存放的数据可以分为三类,一类存放普通值(表头和主键列),一类存放数组(聚合计算列),另一类存放矩阵(合并计算列),算法则是将数组或矩阵变成一个值输出的方法。***预定义的算法有合计求和(sum)、求方差(var)、求标准差(stand)、求乘积(prod)、取均值(mean)、取最大值(max)、取最小值(min)、取第一个元素(pick1st)、当成字符串并用逗号连接(strcat)、求取值计数(count)等,用户可以选择以上算法,也可以采用公式的方式自定义算法,***支持以下操作符*(乘以)、+(加上)、-(减去)、/(除以)、^(乘方),并且用户可在公式中调用***预定义算法(如上sum、var等);
(7)分段:在本统计表述方法中,当用户不关心具体准确取值,或者需要依据某种分类来显示数据,则可以对取值进行分段处理,其支持线性分段(即将取值按某些特定点分成几个段),集合分段(即将可能的取值集合划分为几个小集合,比如国家列中选择美国、日本为美日,别的都分为其他国家),日期分段(允许用户对日期信息进行提取,比如用户可选择按日期中的月份分段,或按年分段,或按年月分段),可以形象的看,分段是一个处理函数,它将源表数据变成另一个值看待并将依据它进行统计处理,而不再关心其原值;
(8)排序:在本统计表述方法中,允许对统计表所包含的列设置排序;若为汇总列或一般列,则按普通规则进行排序,并遵从如下规则:汇总级别高的排序优先于汇总级别低的排序,所有汇总列排序优先于一般列排序,若多个一般列设置了排序,则排序优先级大的优先排序,若多个一般列设置了排序且优先级存在重复,则先出现的列优先排序;若为聚合计算列设置排序,必须设置其依据的聚合算法,除此之外排序规则可视同一般列的排序规则,另外,不同于一般列的一点是,聚合计算列排序可以改变汇总列的排序,条件是汇总列不设置排序,而且聚合计算列设置排序且设置依据的汇总算法,这样用户可以让汇总列按这个聚合列的汇总行的计算结果进行排序,并且每个汇总级别的汇总列会都遵守这个规则,若有多个聚合计算列排序规则,其规则类同上面提到的多个一般列设置排序的规则;若为展开列设置排序,每一层级的展开列会按其设置进行排序,而不影响其父级展开列的排序也不影响其子级展开列的排序;若为展开计算列设置排序,必须设置其依据的聚合算法,与展开列的排序不同的是,展开计算列的排序会改变其直接父级展开列的排序,这也是展开计算列排序的意义和作用,条件是其直接父级展开列不能设置排序规则。另一点规则是,所有汇总列、一般列、展开列的排序都可以设置排序时依据其值还是依据其显示文本,有些单元格的值和显示文本是一致的,但是很多情况下并不一致;
(9)显示项限制:在本统计表述方法中,允许对统计表所包含的列显示项数量限制。若为汇总列设置显示限制数n,那么该列最多只显示n个汇总项;若为一般列或聚合计算列设置显示限制数n,那么每一个汇总项里面最多只有n行数据,若一般列或聚合计算列中有多个设置了显示数,则取最小的一个;若为展开列设置显示限制数n,那么该展开列最多只产生n个展开项;若为展开计算列设置显示限制数n,与对其直接父级设置限制显示数n的效果是一样的。另外,所有列的显示项限制通常会与排序同时使用,程序先执行排序,再执行显示项限制。显示项限制不会影响汇总行数据,可以将其看成隐藏部分数据的显示,而不是删除它们,所以不会影响汇总结果;
(10)链接:在本统计表述方法中,允许用户给统计表所包含的列设置链接。链接包含***内链接和***外链接,***内链接是跳转或打开在本***中定义的其他任何图表,包括自己,而***外链接是跳转或打开本***之外的地址;若选择***内链接,用户必须选择链接的统计表以及其输出形式;用户可以为链接选择打开方式:跳转或弹出层。用户点击链接会打开新的图表,新的图表在数据上与链接是对应的,用户在点击链接时,程序会将被点击的单元格所在的行的主键列及其取值构成链接条件(如果是展开列单元格的话,还会将单元格所在列的展开列及其取值也构成链接条件)发送给新的图表,若是***内链接,***内图表都会正确解读这些条件,若是***外链接,那么链接的外部***必须自己处理该条件(若放弃处理,同一列的链接打开都会是同样的数据)。另外,每个主键列和展开列都是绑定一个源列,在链接跳转的时候,条件中的列名是其源表列名,而不是统计表列名,而接收该条件的统计表进行条件解释的时候,也将其配备源表列名而不是匹配统计表列名,所以程序不要求统计表包含链接的源列一样能够显示对应数据,但是程序要求源表中要有链接的源列,当找不到时,程序会忽略该条件分支,这可能是用户有意需要忽略的,也可能不是,程序将提示你所选择链接的统计表中没有对应的源列,是否修改链接目标。在链接打开的图表中点击链接打开链接的链接时,原链接产生的条件会叠加到新链接的条件中,所以链接的链接的数据是在双重条件限制下的数据,以此类推,本统计表述方法的链接可以无穷多层,只要用户需要;
(11)输出格式化:本统计表述方法支持简单的格式化,也支持复杂的条件格式化,如v>200?<b>{:.2f}</b>\nv>0?{:.2f},该表达式中v代表表格取值,?号之前为条件表达式,问号之后为格式化表达式,每一行代表一个条件格式化,程序从上往下对值进行判断,若符合条件则取其后面格式对值进行格式化,并终止执行。
(12)记录数:在本统计表述方法中,在定制源表时我们会看到每个表包含字段中多了一个记录数,其实该记录数并不在数据库的表中,它是虚拟出来的列,用户选择它加入源表后需要的时候就拉入统计表中,它将自动计算源表数据的记录数;
(13)自动生成周期:在本统计表述方法中,对于统计表来说,通常用户关心的是过去一段时间的情况,比如前一小时、前一天、前一周、前一月等,很少情况下用户需要查看当下数据情况,对于这些图表,用户可以设置自动生成周期,这样在用户查看之前数据就已经自动生成不需要再运行统计,提高响应时间和运行效率。本***支持强大的自动生成周期定义,用户可以指定自动生成周期,还可以设置约束时间参照的列,以及时间长度,假如用户只设定生成周期,比如每月,那统计表每月运行一次,其数据内容包括运行时间之前的所有数据;假如用户只设置约束时间、时间长度及单位,那么统计不会自动运行,但是在用户调用查看时会以该时间约束为条件限制查询数据;假如用户既设定生成周期,而且设置约束时间、时间长度及单位,那么每个生成周期统计表自动运行并且以用户设置的时间约束为条件限制查询数据。
(14)二次统计:在本统计表述方法中,对于不包含展开列的统计表,允许进行二次统计,二次统计会将统计结果作为源表,用户可以重新使用以上概念自由组织统计表。
3.如权利要求1所述的一种支持关系数据库数据自由组合嵌套的统计表述方法:其特征在于:统计结果通过特殊的插件处理在用户浏览器显示,该插件主要包含一个特殊的HTML页面,这个HTML页面特殊之处是其包含一些未确定的变量标记,这些变量会在使用者调用时要求输入值;另一个特殊之处是包含一些预定义变量标记,其分别代表统计图表名称、统计条件和样式表名称,这些变量在程序运行时会根据情况自动赋值。除此之外,这个HTML页面遵从HTML规范,可以调用JS程序为用户绘制各种图表。
4.如权利要求1所述的一种支持关系数据库数据自由组合嵌套的统计表述方法:其特征在于:所述程序表间关联关系以最简洁形式显示,比如用户选择A和B,程序提示用户A和B是否通过C关联起来,但用户不需要关心其关联方式,比如左关联右关联等。
5.如权利要求1所述的一种支持关系数据库数据自由组合嵌套的统计表述方法:其特征在于:所述源表的列被拉入统计表中可以设置为一般列、汇总列、聚合计算列、展开列、或合并计算列,其数据类型并不制约其能被设置为哪些列,而只制约影响其能进行的算法。
6.如权利要求1所述的一种支持关系数据库数据自由组合嵌套的统计表述方法:其特征在于:所述展开列可以嵌套展开列、聚合计算列或合并计算列,可以多层次嵌套。
7.如权利要求1所述的一种支持关系数据库数据自由组合嵌套的统计表述方法:其特征在于:所述聚合计算列、合并计算列或汇总列可以包含一个或多个算法。
8.如权利要求1所述的一种支持关系数据库数据自由组合嵌套的统计表述方法:其特征在于:所述一般列、汇总列、聚合计算列、展开列、合并计算列可以设置分段、排序、显示项限制、链接、输出格式化等。
9.如权利要求1所述的一种支持关系数据库数据自由组合嵌套的统计表述方法:其特征在于:所述条件分为源表条件和统计表条件,源表条件在进行统计之前对数据源数据进行筛选,统计表条件在进行统计之后对统计结果进行筛选,记录数会自动记录源表数据记录数量,即源表行数。
10.如权利要求1所述的一种支持关系数据库数据自由组合嵌套的统计表述方法:其特征在于:输出以特殊格式的JSON和DHTML形式输出,浏览器先等到一个HTML页面,由其告知浏览器下一步获取的JSON数据和页面绘制程序需要的JS、CSS和图片文件等。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610975724.7A CN106599039B (zh) | 2016-11-07 | 2016-11-07 | 一种支持关系数据库数据自由组合嵌套的统计表述方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610975724.7A CN106599039B (zh) | 2016-11-07 | 2016-11-07 | 一种支持关系数据库数据自由组合嵌套的统计表述方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106599039A true CN106599039A (zh) | 2017-04-26 |
CN106599039B CN106599039B (zh) | 2021-01-15 |
Family
ID=58589748
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610975724.7A Active CN106599039B (zh) | 2016-11-07 | 2016-11-07 | 一种支持关系数据库数据自由组合嵌套的统计表述方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106599039B (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107301044A (zh) * | 2017-06-09 | 2017-10-27 | 广州慧扬健康科技有限公司 | 用于代谢病电子病历表单的多页控件 |
CN107632972A (zh) * | 2017-08-31 | 2018-01-26 | 精硕科技(北京)股份有限公司 | 表单处理方法和装置 |
CN108446381A (zh) * | 2018-03-19 | 2018-08-24 | 武汉华大国家数字化学习工程技术有限公司 | 一种基于Web的数据可视化***与方法 |
CN109284277A (zh) * | 2018-07-16 | 2019-01-29 | 广东南方数码科技股份有限公司 | 一种汇总表格的数据调平方法、电子设备及存储介质 |
CN110019162A (zh) * | 2017-12-04 | 2019-07-16 | 北京京东尚科信息技术有限公司 | 实现属性归一的方法和装置 |
CN110619069A (zh) * | 2018-06-18 | 2019-12-27 | 富士施乐株式会社 | 信息处理设备和非暂时性计算机可读介质 |
CN110866722A (zh) * | 2019-11-12 | 2020-03-06 | 上海燕汐软件信息科技有限公司 | 业务处理***及方法 |
CN110941949A (zh) * | 2019-11-21 | 2020-03-31 | 望海康信(北京)科技股份公司 | 数据表格渲染控制方法、装置、计算机设备及存储介质 |
CN111143370A (zh) * | 2019-12-27 | 2020-05-12 | 北京数起科技有限公司 | 用于分析多个数据表之间关系的方法、设备和计算机可读存储介质 |
CN112711933A (zh) * | 2020-12-31 | 2021-04-27 | 深轻(上海)科技有限公司 | 一种利用电子表格进行寿险精算模型校验的方法 |
CN112883073A (zh) * | 2021-03-22 | 2021-06-01 | 北京同邦卓益科技有限公司 | 数据筛选方法、装置、设备、可读存储介质以及产品 |
CN113702849A (zh) * | 2021-08-20 | 2021-11-26 | 深圳市新威尔电子有限公司 | 电池检测数据处理方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103559292A (zh) * | 2013-11-07 | 2014-02-05 | 大连东方之星信息技术有限公司 | 一种自定义动态创建并显示多级表格的方法 |
US20140136511A1 (en) * | 2012-11-15 | 2014-05-15 | Microsoft Corporation | Discovery and use of navigational relationships in tabular data |
CN104391833A (zh) * | 2014-12-05 | 2015-03-04 | 张明兴 | 制表软件的横排、表头、并行的自动化 |
-
2016
- 2016-11-07 CN CN201610975724.7A patent/CN106599039B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140136511A1 (en) * | 2012-11-15 | 2014-05-15 | Microsoft Corporation | Discovery and use of navigational relationships in tabular data |
CN103559292A (zh) * | 2013-11-07 | 2014-02-05 | 大连东方之星信息技术有限公司 | 一种自定义动态创建并显示多级表格的方法 |
CN104391833A (zh) * | 2014-12-05 | 2015-03-04 | 张明兴 | 制表软件的横排、表头、并行的自动化 |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107301044A (zh) * | 2017-06-09 | 2017-10-27 | 广州慧扬健康科技有限公司 | 用于代谢病电子病历表单的多页控件 |
CN107632972A (zh) * | 2017-08-31 | 2018-01-26 | 精硕科技(北京)股份有限公司 | 表单处理方法和装置 |
CN110019162B (zh) * | 2017-12-04 | 2021-07-06 | 北京京东尚科信息技术有限公司 | 实现属性归一的方法和装置 |
CN110019162A (zh) * | 2017-12-04 | 2019-07-16 | 北京京东尚科信息技术有限公司 | 实现属性归一的方法和装置 |
CN108446381A (zh) * | 2018-03-19 | 2018-08-24 | 武汉华大国家数字化学习工程技术有限公司 | 一种基于Web的数据可视化***与方法 |
CN110619069A (zh) * | 2018-06-18 | 2019-12-27 | 富士施乐株式会社 | 信息处理设备和非暂时性计算机可读介质 |
CN109284277A (zh) * | 2018-07-16 | 2019-01-29 | 广东南方数码科技股份有限公司 | 一种汇总表格的数据调平方法、电子设备及存储介质 |
CN109284277B (zh) * | 2018-07-16 | 2023-11-28 | 广东省土地调查规划院 | 一种汇总表格的数据调平方法、电子设备及存储介质 |
CN110866722A (zh) * | 2019-11-12 | 2020-03-06 | 上海燕汐软件信息科技有限公司 | 业务处理***及方法 |
CN110941949A (zh) * | 2019-11-21 | 2020-03-31 | 望海康信(北京)科技股份公司 | 数据表格渲染控制方法、装置、计算机设备及存储介质 |
CN110941949B (zh) * | 2019-11-21 | 2020-12-11 | 望海康信(北京)科技股份公司 | 数据表格渲染控制方法、装置、计算机设备及存储介质 |
CN111143370A (zh) * | 2019-12-27 | 2020-05-12 | 北京数起科技有限公司 | 用于分析多个数据表之间关系的方法、设备和计算机可读存储介质 |
CN111143370B (zh) * | 2019-12-27 | 2021-03-26 | 北京数起科技有限公司 | 用于分析多个数据表之间关系的方法、设备和计算机可读存储介质 |
CN112711933A (zh) * | 2020-12-31 | 2021-04-27 | 深轻(上海)科技有限公司 | 一种利用电子表格进行寿险精算模型校验的方法 |
CN112883073A (zh) * | 2021-03-22 | 2021-06-01 | 北京同邦卓益科技有限公司 | 数据筛选方法、装置、设备、可读存储介质以及产品 |
CN112883073B (zh) * | 2021-03-22 | 2024-04-05 | 北京同邦卓益科技有限公司 | 数据筛选方法、装置、设备、可读存储介质以及产品 |
CN113702849A (zh) * | 2021-08-20 | 2021-11-26 | 深圳市新威尔电子有限公司 | 电池检测数据处理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN106599039B (zh) | 2021-01-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106599039A (zh) | 一种支持关系数据库数据自由组合嵌套的统计表述方法 | |
US11681694B2 (en) | Systems and methods for grouping and enriching data items accessed from one or more databases for presentation in a user interface | |
US10762142B2 (en) | User-defined automated document feature extraction and optimization | |
US7370271B2 (en) | Methods and apparatus for generating a spreadsheet report template | |
US9798781B2 (en) | Strategy trees for data mining | |
US8135755B2 (en) | Templates in a schema editor | |
US7783678B2 (en) | Method for automating software manufacturing process based on user interface form design, and computer readable medium recording computer executable instruction for performing the same | |
Antkiewicz et al. | FeaturePlugin: Feature modeling plug-in for Eclipse | |
CN102968436B (zh) | 图表推荐 | |
US6182095B1 (en) | Document generator | |
US8239757B2 (en) | System and method for creating and modifying test data files | |
US20180004823A1 (en) | System and method for data profile driven analytics | |
US20080163159A1 (en) | System and method for extracting UML models from legacy applications | |
US20040122699A1 (en) | Method and system for integrating workflow management with business intelligence | |
WO2019178403A1 (en) | User-defined automated document feature modeling, extraction and optimization | |
US6959429B1 (en) | System for developing data collection software applications | |
CN110083814A (zh) | 一种报表生成方法和装置、计算机可读存储介质 | |
CN116627418B (zh) | 一种基于递归算法的多级表单界面可视化生成方法及装置 | |
KR102187322B1 (ko) | 비즈니스 룰 관리 시스템 | |
US8291380B2 (en) | Methods for configuring software package | |
CN104182226B (zh) | 一种通用移动信息***适配方法与装置 | |
CN103778154B (zh) | 表单属性的反写方法及装置 | |
CN101128848A (zh) | 来自KStore的数据的图形显示 | |
US7702643B2 (en) | System and method for metamodel-based gap analysis | |
Ingelbeen et al. | Enterprise architecture software tool support for small and medium-sized enterprises: EASE |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20240226 Address after: No. 10, Outer Eleven Lane, Longdong City, Haishan Town, Raoping County, Chaozhou City, Guangdong Province, 515724 Patentee after: Zhu Weitong Country or region after: China Address before: 518000 room 402, No.22, Lane 5, Mabu village, Xixiang street, Bao'an District, Shenzhen City, Guangdong Province Patentee before: SHENZHEN RUIJIE SOFTWARE TECHNOLOGY Co.,Ltd. Country or region before: China |