CN113486066A - 一种报表分级汇总的方法及终端 - Google Patents

一种报表分级汇总的方法及终端 Download PDF

Info

Publication number
CN113486066A
CN113486066A CN202110799978.9A CN202110799978A CN113486066A CN 113486066 A CN113486066 A CN 113486066A CN 202110799978 A CN202110799978 A CN 202110799978A CN 113486066 A CN113486066 A CN 113486066A
Authority
CN
China
Prior art keywords
primary
hash value
statement
report
query
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
Application number
CN202110799978.9A
Other languages
English (en)
Other versions
CN113486066B (zh
Inventor
陈庸凯
黄荣明
汪彦
朱国华
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujian Boss Software Co ltd
Original Assignee
Fujian Boss Software Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujian Boss Software Co ltd filed Critical Fujian Boss Software Co ltd
Priority to CN202110799978.9A priority Critical patent/CN113486066B/zh
Publication of CN113486066A publication Critical patent/CN113486066A/zh
Application granted granted Critical
Publication of CN113486066B publication Critical patent/CN113486066B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24553Query execution of query operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种报表分级汇总的方法及终端,预先设置分级汇总报表的SQL表达式和所需要展示的多种维度组合;接收报表查询请求,将查询请求的查询条件代入表达式后得到一级汇总语句,并计算一级汇总语句的哈希值,能够将一级汇总语句与哈希值一一对应;哈希值存在与其对应的内存临时表,从多种维度组合中选择二级汇总所需的汇总维度组合,能够根据内存临时表和汇总维度组合进行二级汇总,相较于现有技术中需要进行内存聚合的分级汇总方法,本发明后续的二级汇总都可以直接从内存临时表中按SQL语义进行查询,能够做到一次分析多次使用,降低数据库负载,提升查询效率,并且内存临时表可以多次使用,提高了报表分级汇总时的可读性和可维护性。

Description

一种报表分级汇总的方法及终端
技术领域
本发明涉及报表技术领域,特别涉及一种报表分级汇总的方法及终端。
背景技术
在设计自定义报表中,当需要在一个报表菜单中同时查询同一个数据集并按多个不同的维度自由组合分级汇总数据时,传统的方案是多次统计源表。例如:源数据集包括单位、科目、项目、银行、金额等多个维度,如果分别按(单位|科目)、(单位|项目)、(单位|银行)统计金额,则需要扫描三次源表。对于不同的子表,后台需要向数据库分别提交查询请求,然后自动合并结果集,返回给前端。
但是多次查询源表,如果在库表数据量很大的情况下,增加了数据库负载,查询性能非常低,往往会导致报表查询响应超时,客户体验性差;并且自定义报表的sql语句冗长,代码可读性差,维护成本高。
另一个方案是查询一次数据库,做简单的一级汇总,对所有需要的维度字段进行分组,然后在内存中分别再做二级汇总,得到最终的几个结果集,最后返回给前端。
但在这种方案中,需要进行内存聚合,内存聚合的算法相对复杂且很难抽象出通用的业务模型,可能需要针对不同的业务数据维度分别做处理;目前自定义报表设计器按SQL语义定义一个报表,无法运用内存聚合算法按常规流程定义出一个分级汇总报表。
发明内容
本发明所要解决的技术问题是:提供一种报表分级汇总的方法及终端,能够提高了报表分级汇总时的可读性和可维护性。
为了解决上述技术问题,本发明采用的技术方案为:
一种报表分级汇总的方法,包括步骤:
设置报表的SQL表达式和多种维度组合;
接收报表查询请求,将所述查询请求的查询条件代入所述表达式得到一级汇总语句;
计算所述一级汇总语句的哈希值,判断是否存在与所述哈希值对应的内存临时表,若是,则直接使用所述内存临时表,否则,根据所述一级汇总语句构建所述哈希值对应的内存临时表;
根据所述查询请求的查询条件,从所述多种维度组合中选择二级汇总所需的汇总维度组合,根据所述内存临时表和所述汇总维度组合进行二级汇总,将二级汇总得到的结果进行展示。
为了解决上述技术问题,本发明采用的另一种技术方案为:
一种报表分级汇总的终端,包括存储器、处理器以及存储在所述存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
设置报表的SQL表达式和多种维度组合;
接收报表查询请求,将所述查询请求的查询条件代入所述表达式得到一级汇总语句;
计算所述一级汇总语句的哈希值,判断是否存在与所述哈希值对应的内存临时表,若是,则直接使用所述内存临时表,否则,根据所述一级汇总语句构建所述哈希值对应的内存临时表;
根据所述查询请求的查询条件,从所述多种维度组合中选择二级汇总所需的汇总维度组合,根据所述内存临时表和所述汇总维度组合进行二级汇总,将二级汇总得到的结果进行展示。
本发明的有益效果在于:预先设置分级汇总报表的SQL表达式和所需要展示的多种维度组合;接收报表查询请求,将查询请求的查询条件代入表达式后得到一级汇总语句,并计算一级汇总语句的哈希值,能够将一级汇总语句与哈希值一一对应;哈希值存在与其对应的内存临时表,从多种维度组合中选择二级汇总所需的汇总维度组合,能够根据内存临时表和汇总维度组合进行二级汇总,相较于现有技术中需要进行内存聚合的分级汇总方法,本发明后续的二级汇总都可以直接从内存临时表中按SQL语义进行查询,能够做到一次分析多次使用,降低了数据库负载,提升了查询效率,并且内存临时表可以多次使用,提高了报表分级汇总时的可读性和可维护性。
附图说明
图1为本发明实施例的一种报表分级汇总的方法的流程图;
图2为本发明实施例的一种报表分级汇总的终端的示意图;
图3为本发明实施例的一种报表分级汇总的方法的具体模块示意图;
图4为本发明实施例的一种报表分级汇总的方法的汇总表设置示意图;
图5为本发明实施例的一种报表分级汇总的方法的SQL表达式示意图;
图6为本发明实施例的一种报表分级汇总的方法的报表设置示意图;
图7为本发明实施例的一种报表分级汇总的方法的分级汇总维度设置示意图;
图8为本发明实施例的一种报表分级汇总的方法的流程图;
图9为本发明实施例的一种报表分级汇总的方法的流程图。
具体实施方式
为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图予以说明。
请参照图1、图3至图9,本发明实施例提供了一种报表分级汇总的方法,包括步骤:
设置报表的SQL表达式和多种维度组合;
接收报表查询请求,将所述查询请求的查询条件代入所述表达式得到一级汇总语句;
计算所述一级汇总语句的哈希值,判断是否存在与所述哈希值对应的内存临时表,若是,则直接使用所述内存临时表,否则,根据所述一级汇总语句构建所述哈希值对应的内存临时表;
根据所述查询请求的查询条件,从所述多种维度组合中选择二级汇总所需的汇总维度组合,根据所述内存临时表和所述汇总维度组合进行二级汇总,将二级汇总得到的结果进行展示。
从上述描述可知,本发明的有益效果在于:预先设置分级汇总报表的SQL表达式和所需要展示的多种维度组合;接收报表查询请求,将查询请求的查询条件代入表达式后得到一级汇总语句,并计算一级汇总语句的哈希值,能够将一级汇总语句与哈希值一一对应;哈希值存在与其对应的内存临时表,从多种维度组合中选择二级汇总所需的汇总维度组合,能够根据内存临时表和汇总维度组合进行二级汇总,相较于现有技术中需要进行内存聚合的分级汇总方法,本发明后续的二级汇总都可以直接从内存临时表中按SQL语义进行查询,能够做到一次分析多次使用,降低了数据库负载,提升了查询效率,并且内存临时表可以多次使用,提高了报表分级汇总时的可读性和可维护性。
进一步地,所述设置报表的SQL表达式包括:
设置报表的SQL表达式,在所述SQL表达式中添加条件变量;
将所述查询请求的查询条件代入所述表达式得到一级汇总语句包括:
将所述查询条件代入所述表达式的条件变量,解析得到一级汇总语句。
由上述描述可知,在设置报表SQL表达式时,在表达式中添加条件变量,从而能够在获取查询请求时将查询条件代入条件变量中,解析得到一级汇总语句,实现了一级汇总语句的可配置性,并且提高了代码可读性和易维护性。
进一步地,所述计算所述一级汇总语句的哈希值包括:
设置哈希值的初始值为0,获取解析后的所述一级汇总语句的每一个字符的值,根据所述每一个字符的value值依次对所述哈希值hash进行以下更新:
hash=31*hash+(value&0xff)。
由上述描述可知,通过计算一级汇总语句中每一个字符的值,根据字符值依次对哈希值进行更新计算,从而为每个一级汇总语句生成对应的哈希值,以便于后续内存临时表的建立。
进一步地,从所述多种维度组合中选择二级汇总所需的汇总维度组合,根据所述内存临时表和所述汇总维度组合进行二级汇总,将二级汇总得到的结果进行展示包括:
从预设的所述多种维度组合中选择二级汇总所需的多个汇总维度组合;
使用每一所述汇总维度组合分别查询所述内存临时表,得到对应的二级汇总语句;
将多个二级汇总语句的查询结果分别进行展示。
由上述描述可知,从多种维度组合中选择二级汇总所需的多个汇总维度组合,并将每一汇总维度组合分别代入内存临时表,能够得到对应的二级汇总语句,从而实现对内存临时表的多次使用,进一步提高了汇总报表查询请求的响应速度,提高了用户体验度。
进一步地,根据所述一级汇总语句构建所述哈希值对应的内存临时表包括:
使用所述一级汇总语句构建内存临时表,根据所述一级汇总语句的哈希值设置所述内存临时表的表名。
由上述描述可知,使用一级汇总语句构建内存临时表,并根据一级汇总语句的哈希值设置内存临时表的表名,能够对每一个一级汇总语句生成对应的内存临时表,以便于后续直接基于内存临时表进行二级汇总,因此只需查询一次源表即可多次使用,降低了数据库负载,提升了查询效率。
请参照图2,本发明另一实施例提供了一种报表分级汇总的终端,包括存储器、处理器以及存储在所述存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
设置报表的SQL表达式和多种维度组合;
接收报表查询请求,将所述查询请求的查询条件代入所述表达式得到一级汇总语句;
计算所述一级汇总语句的哈希值,判断是否存在与所述哈希值对应的内存临时表,若是,则直接使用所述内存临时表,否则,根据所述一级汇总语句构建所述哈希值对应的内存临时表;
根据所述查询请求的查询条件,从所述多种维度组合中选择二级汇总所需的汇总维度组合,根据所述内存临时表和所述汇总维度组合进行二级汇总,将二级汇总得到的结果进行展示。
由上述描述可知,预先设置分级汇总报表的SQL表达式和所需要展示的多种维度组合;接收报表查询请求,将查询请求的查询条件代入表达式后得到一级汇总语句,并计算一级汇总语句的哈希值,能够将一级汇总语句与哈希值一一对应;哈希值存在与其对应的内存临时表,从多种维度组合中选择二级汇总所需的汇总维度组合,能够根据内存临时表和汇总维度组合进行二级汇总,相较于现有技术中需要进行内存聚合的分级汇总方法,本发明后续的二级汇总都可以直接从内存临时表中按SQL语义进行查询,能够做到一次分析多次使用,降低了数据库负载,提升了查询效率,并且内存临时表可以多次使用,提高了报表分级汇总时的可读性和可维护性。
进一步地,所述设置报表的SQL表达式包括:
设置报表的SQL表达式,在所述SQL表达式中添加条件变量;
将所述查询请求的查询条件代入所述表达式得到一级汇总语句包括:
将所述查询条件代入所述表达式的条件变量,解析得到一级汇总语句。
由上述描述可知,在设置报表SQL表达式时,在表达式中添加条件变量,从而能够在获取查询请求时将查询条件代入条件变量中,解析得到一级汇总语句,实现了一级汇总语句的可配置性,并且提高了代码可读性和易维护性。
进一步地,所述计算所述一级汇总语句的哈希值包括:
设置哈希值的初始值为0,获取解析后的所述一级汇总语句的每一个字符的值,根据所述每一个字符的value值依次对所述哈希值hash进行以下更新:
hash=31*hash+(value&0xff)。
由上述描述可知,通过计算一级汇总语句中每一个字符的值,根据字符值依次对哈希值进行更新计算,从而为每个一级汇总语句生成对应的哈希值,以便于后续内存临时表的建立。
进一步地,从所述多种维度组合中选择二级汇总所需的汇总维度组合,根据所述内存临时表和所述汇总维度组合进行二级汇总,将二级汇总得到的结果进行展示包括:
从预设的所述多种维度组合中选择二级汇总所需的多个汇总维度组合;
使用每一所述汇总维度组合分别查询所述内存临时表,得到对应的二级汇总语句;
将多个二级汇总语句的查询结果分别进行展示。
由上述描述可知,从多种维度组合中选择二级汇总所需的多个汇总维度组合,并将每一汇总维度组合分别代入内存临时表,能够得到对应的二级汇总语句,从而实现对内存临时表的多次使用,进一步提高了汇总报表查询请求的响应速度,提高了用户体验度。
进一步地,根据所述一级汇总语句构建所述哈希值对应的内存临时表包括:
使用所述一级汇总语句构建内存临时表,根据所述一级汇总语句的哈希值设置所述内存临时表的表名。
由上述描述可知,使用一级汇总语句构建内存临时表,并根据一级汇总语句的哈希值设置内存临时表的表名,能够对每一个一级汇总语句生成对应的内存临时表,以便于后续直接基于内存临时表进行二级汇总,因此只需查询一次源表即可多次使用,降低了数据库负载,提升了查询效率。
本发明的一种报表分级汇总的方法及终端,适用于基于ClickHouse的多维度自由组合的分级汇总报表的计算,能够提高了报表分级汇总时的可读性和可维护性,以下通过具体实施方式进行说明:
实施例一
请参照图1、图3至图9,一种报表分级汇总的方法,包括步骤:
S1、设置报表的SQL表达式和多种维度组合。
其中,所述设置报表的SQL表达式包括:
设置报表的SQL表达式,在所述SQL表达式中添加条件变量。
具体的,请参照图3至图5,使用自定义报表设计器定义多维度自由组合报表,需定义SQL表达式、报表展示布局和报表数据集,其中,设置汇总表的数据模型和SQL表达式,在表达式中添加条件变量,在本实施例中,条件变量为${BEGINDATE}和${ENDDATE};
请参照图6和图7,设置报表的基本属性,并将报表与汇总表的数据模型相关联,设置报表分级汇总维度,在本实施例中,一级汇总的维度有开票日期、单位编码、单位名称、票据种类、项目编码和项目名称,从一级汇总中可以衍生出多个二级汇总,因此设置多种维度组合,以便后续进行二级汇总时使用。
自定义报表设计器设计分级汇总报表之后,将报表模板保存至生成库Oracle,生产库的数据会定时同步至ClickHouse,提供给报表服务组件查询使用。
S2、接收报表查询请求,将所述查询请求的查询条件代入所述表达式得到一级汇总语句。
其中,将所述查询请求的查询条件代入所述表达式得到一级汇总语句包括:
将所述查询条件代入所述表达式的条件变量,解析得到一级汇总语句。
具体的,获取查询请求中的查询条件,在本实施例中,查询条件为BEGINDATE=’2021-01-01’和ENDDATE=’2021-02-01’;
将查询条件代入SQL表达式得到一级汇总语句。
S3、计算所述一级汇总语句的哈希值,判断是否存在与所述哈希值对应的内存临时表,若是,则直接使用所述内存临时表,否则,根据所述一级汇总语句构建所述哈希值对应的内存临时表。
其中,所述计算所述一级汇总语句的哈希值包括:
设置哈希值的初始值为0,获取解析后的所述一级汇总语句的每一个字符的值,根据所述每一个字符的value值依次对所述哈希值hash进行以下更新:
hash=31*hash+(value&0xff)。
具体的,将动态SQL的参数解析赋值后,得到最终提交查询的静态SQL,计算此SQL字符串的哈希值;初始化hash=0,循环SQL字符串中的每个字符;获取每个字符的value值,更新hash=31*hash+(value&0xff);最后通过公式hash=hash&0x7fffffff,将hash值从负值转为正值。
其中,根据所述一级汇总语句构建所述哈希值对应的内存临时表包括:
使用所述一级汇总语句构建内存临时表,根据所述一级汇总语句的哈希值设置所述内存临时表的表名。
具体的,在Redis缓存中检索一级汇总语句的hash值,如果已存在对应的临时表名称,则直接使用该内存临时表;否则,将一级汇总语句提交至数据库查询,使用数据库查询返回的结果构建内存临时表,并使用hash值对内存临时表命名;
建表成功后,将hash值作为“键”,临时表名称作为“值”存入Redis缓存中,相同查询条件的报表可以服用同一个内存临时表;为内存临时表设置过期时间,报表服务会定时删除过期的内存临时表及Redis中相关的缓存。
报表设计器设计的报表是一个相对通用的模板,所以其主要依托于动态SQL和相关的查询条件配置,直接通过JDBC(Java Database Connectivity,Java数据库连接)查询数据库,得到最终的结果集;而内存聚合算法一般情况都是相对特化的处理,实施人员很难在设计器上表达其需求和具体的实现语义,所以采用内存临时表的方案,通过一次分析处理,即一次查询源表,可以让自定义报表多次使用,从而降低数据库负载,提升查询效率。
S4、根据所述查询请求的查询条件,从所述多种维度组合中选择二级汇总所需的汇总维度组合,根据所述内存临时表和所述汇总维度组合进行二级汇总,将二级汇总得到的结果进行展示。
其中,从所述多种维度组合中选择二级汇总所需的汇总维度组合,根据所述内存临时表和所述汇总维度组合进行二级汇总,将二级汇总得到的结果进行展示包括:
从预设的所述多种维度组合中选择二级汇总所需的多个汇总维度组合;
使用每一所述汇总维度组合分别查询所述内存临时表,得到对应的二级汇总语句;
将多个二级汇总语句的查询结果分别进行展示。
具体的,从预设的多种维度组合中选择二级汇总所需的多个汇总维度组合,按报表的多个汇总维度组合分别查询内存临时表做二级汇总,将多个二级汇总语句的查询结果分别进行展示,在本实施例中,请参照图8,二级汇总可使用开票日期、单位编码、单位名称、票据种类和开票金额这几个维度进行查询;
根据预设的报表展示效果,将多个二级汇总语句的查询结果发送至前段服务,分别进行展示;
在一种的可选的实施方式中,能够进一步基于二级汇总的维度,生成多个三级汇总维度组合,以便于后续进行报表的多级汇总。
实施例二
请参照图2,一种报表分级汇总的终端,包括存储器、处理器以及存储在所述存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现实施例一的一种报表分级汇总的方法的各个步骤。
综上所述,本发明提供的一种报表分级汇总的方法及终端,预先设置分级汇总报表的SQL表达式和所需要展示的多种维度组合;接收报表查询请求,将查询请求的查询条件代入表达式后得到一级汇总语句,并计算一级汇总语句的哈希值,能够将一级汇总语句与哈希值一一对应,其中,在设置SQL表达式时,在表达式中添加条件变量,将查询条件代入条件变量,能够快速得到一级汇总语句,简化了自定义报表的模板设计,提高了代码可读性和易维护性;哈希值存在与其对应的内存临时表,从多种维度组合中选择二级汇总所需的汇总维度组合,能够根据内存临时表和汇总维度组合进行二级汇总,相较于现有技术中需要进行内存聚合的分级汇总方法,本发明后续的二级汇总都可以直接从内存临时表中按SQL语义进行查询,能够做到一次分析多次使用,降低了数据库负载,提升了查询效率;并且本发明还能再基于二级汇总表进行多级汇总,能够提高汇总报表查询请求的响应速度,提升了客户体验性。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (10)

1.一种报表分级汇总的方法,其特征在于,包括步骤:
设置报表的SQL表达式和多种维度组合;
接收报表查询请求,将所述查询请求的查询条件代入所述表达式得到一级汇总语句;
计算所述一级汇总语句的哈希值,判断是否存在与所述哈希值对应的内存临时表,若是,则直接使用所述内存临时表,否则,根据所述一级汇总语句构建所述哈希值对应的内存临时表;
根据所述查询请求的查询条件,从所述多种维度组合中选择二级汇总所需的汇总维度组合,根据所述内存临时表和所述汇总维度组合进行二级汇总,将二级汇总得到的结果进行展示。
2.根据权利要求1所述的一种报表分级汇总的方法,其特征在于,所述设置报表的SQL表达式包括:
设置报表的SQL表达式,在所述SQL表达式中添加条件变量;
将所述查询请求的查询条件代入所述表达式得到一级汇总语句包括:
将所述查询条件代入所述表达式的条件变量,解析得到一级汇总语句。
3.根据权利要求1所述的一种报表分级汇总的方法,其特征在于,所述计算所述一级汇总语句的哈希值包括:
设置哈希值的初始值为0,获取解析后的所述一级汇总语句的每一个字符的值,根据所述每一个字符的value值依次对所述哈希值hash进行以下更新:
hash=31*hash+(value&0xff)。
4.根据权利要求1所述的一种报表分级汇总的方法,其特征在于,从所述多种维度组合中选择二级汇总所需的汇总维度组合,根据所述内存临时表和所述汇总维度组合进行二级汇总,将二级汇总得到的结果进行展示包括:
从预设的所述多种维度组合中选择二级汇总所需的多个汇总维度组合;
使用每一所述汇总维度组合分别查询所述内存临时表,得到对应的二级汇总语句;
将多个二级汇总语句的查询结果分别进行展示。
5.根据权利要求1至4中任一种所述的一种报表分级汇总的方法,其特征在于,根据所述一级汇总语句构建所述哈希值对应的内存临时表包括:
使用所述一级汇总语句构建内存临时表,根据所述一级汇总语句的哈希值设置所述内存临时表的表名。
6.一种报表分级汇总的终端,包括存储器、处理器以及存储在所述存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现以下步骤:
设置报表的SQL表达式和多种维度组合;
接收报表查询请求,将所述查询请求的查询条件代入所述表达式得到一级汇总语句;
计算所述一级汇总语句的哈希值,判断是否存在与所述哈希值对应的内存临时表,若是,则直接使用所述内存临时表,否则,根据所述一级汇总语句构建所述哈希值对应的内存临时表;
根据所述查询请求的查询条件,从所述多种维度组合中选择二级汇总所需的汇总维度组合,根据所述内存临时表和所述汇总维度组合进行二级汇总,将二级汇总得到的结果进行展示。
7.根据权利要求6所述的一种报表分级汇总的终端,其特征在于,所述设置报表的SQL表达式包括:
设置报表的SQL表达式,在所述SQL表达式中添加条件变量;
将所述查询请求的查询条件代入所述表达式得到一级汇总语句包括:
将所述查询条件代入所述表达式的条件变量,解析得到一级汇总语句。
8.根据权利要求6所述的一种报表分级汇总的终端,其特征在于,所述计算所述一级汇总语句的哈希值包括:
设置哈希值的初始值为0,获取解析后的所述一级汇总语句的每一个字符的值,根据所述每一个字符的value值依次对所述哈希值hash进行以下更新:
hash=31*hash+(value&0xff)。
9.根据权利要求6所述的一种报表分级汇总的终端,其特征在于,从所述多种维度组合中选择二级汇总所需的汇总维度组合,根据所述内存临时表和所述汇总维度组合进行二级汇总,将二级汇总得到的结果进行展示包括:
从预设的所述多种维度组合中选择二级汇总所需的多个汇总维度组合;
使用每一所述汇总维度组合分别查询所述内存临时表,得到对应的二级汇总语句;
将多个二级汇总语句的查询结果分别进行展示。
10.根据权利要求6至9中任一项所述的一种报表分级汇总的终端,其特征在于,根据所述一级汇总语句构建所述哈希值对应的内存临时表包括:
使用所述一级汇总语句构建内存临时表,根据所述一级汇总语句的哈希值设置所述内存临时表的表名。
CN202110799978.9A 2021-07-15 2021-07-15 一种报表分级汇总的方法及终端 Active CN113486066B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110799978.9A CN113486066B (zh) 2021-07-15 2021-07-15 一种报表分级汇总的方法及终端

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110799978.9A CN113486066B (zh) 2021-07-15 2021-07-15 一种报表分级汇总的方法及终端

Publications (2)

Publication Number Publication Date
CN113486066A true CN113486066A (zh) 2021-10-08
CN113486066B CN113486066B (zh) 2023-03-24

Family

ID=77938863

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110799978.9A Active CN113486066B (zh) 2021-07-15 2021-07-15 一种报表分级汇总的方法及终端

Country Status (1)

Country Link
CN (1) CN113486066B (zh)

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070185833A1 (en) * 2006-01-27 2007-08-09 Oracle International Corporation Query generation method
CN101866350A (zh) * 2010-05-11 2010-10-20 中兴通讯股份有限公司 报表生成方法、装置及web服务器
US20130073552A1 (en) * 2011-09-16 2013-03-21 Cisco Technology, Inc. Data Center Capability Summarization
CN105138686A (zh) * 2015-09-17 2015-12-09 国家电网公司 一种用于多级存储数据的即时应用方法
CN107341235A (zh) * 2017-07-04 2017-11-10 北京京东尚科信息技术有限公司 报表查询方法、装置、介质和电子设备
KR101878213B1 (ko) * 2017-03-24 2018-07-13 경희대학교 산학협력단 가중치 그래프를 요약하는 방법, 장치 및 컴퓨터 프로그램
CN109857756A (zh) * 2019-01-14 2019-06-07 中国联合网络通信集团有限公司 数据库报表的生成方法、装置、设备及可读存储介质
CN110019559A (zh) * 2017-12-27 2019-07-16 航天信息股份有限公司 一种数据查询方法和系统
CN110276059A (zh) * 2019-06-24 2019-09-24 银联商务股份有限公司 一种动态报表的处理方法和装置
CN112000747A (zh) * 2020-07-08 2020-11-27 苏宁云计算有限公司 数据多维分析方法、装置及系统

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070185833A1 (en) * 2006-01-27 2007-08-09 Oracle International Corporation Query generation method
CN101866350A (zh) * 2010-05-11 2010-10-20 中兴通讯股份有限公司 报表生成方法、装置及web服务器
US20130073552A1 (en) * 2011-09-16 2013-03-21 Cisco Technology, Inc. Data Center Capability Summarization
CN105138686A (zh) * 2015-09-17 2015-12-09 国家电网公司 一种用于多级存储数据的即时应用方法
KR101878213B1 (ko) * 2017-03-24 2018-07-13 경희대학교 산학협력단 가중치 그래프를 요약하는 방법, 장치 및 컴퓨터 프로그램
CN107341235A (zh) * 2017-07-04 2017-11-10 北京京东尚科信息技术有限公司 报表查询方法、装置、介质和电子设备
CN110019559A (zh) * 2017-12-27 2019-07-16 航天信息股份有限公司 一种数据查询方法和系统
CN109857756A (zh) * 2019-01-14 2019-06-07 中国联合网络通信集团有限公司 数据库报表的生成方法、装置、设备及可读存储介质
CN110276059A (zh) * 2019-06-24 2019-09-24 银联商务股份有限公司 一种动态报表的处理方法和装置
CN112000747A (zh) * 2020-07-08 2020-11-27 苏宁云计算有限公司 数据多维分析方法、装置及系统

Non-Patent Citations (6)

* Cited by examiner, † Cited by third party
Title
刘鹏举等: "森林资源报表优化统计技术研究", 《林业资源管理》 *
孙新等: "基于HIS查询系统的数据仓库构建与实现", 《中国西部科技》 *
徐帆: "汇总型多表连接查询的一种优化方法", 《计算机工程与设计》 *
李林利等: "通用Web多级汇总型报表工具的设计", 《兵工自动化》 *
覃雄派等: "银行数据大集中环境下大规模固定报表生成", 《华中科技大学学报(自然科学版)》 *
项玉良等: "分级存储数据多维分析技术的研究与应用", 《计算机与现代化》 *

Also Published As

Publication number Publication date
CN113486066B (zh) 2023-03-24

Similar Documents

Publication Publication Date Title
US20230325410A1 (en) Data analysis engine
Abedjan et al. Profiling relational data: a survey
Lakshmanan et al. SchemaSQL: An extension to SQL for multidatabase interoperability
CN108038222B (zh) 用于信息系统建模和数据访问的实体-属性框架的系统
US8898145B2 (en) Query optimization techniques for business intelligence systems
US10191944B2 (en) Columnar data arrangement for semi-structured data
US8965915B2 (en) Assisted query formation, validation, and result previewing in a database having a complex schema
EP2605158B1 (en) Mixed join of row and column database tables in native orientation
Rao et al. Spatial hierarchy and OLAP-favored search in spatial data warehouse
Jensen et al. Converting XML DTDs to UML diagrams for conceptual data integration
US20070239681A1 (en) Techniques of efficient XML meta-data query using XML table index
Tzoumas et al. Efficiently adapting graphical models for selectivity estimation
US20060116983A1 (en) System and method for ordering query results
EP2668598A1 (en) Analytical data processing
US20060117032A1 (en) System and method for sorting data records contained in a query result
CN104317936A (zh) 一种基于星型模型的rolap解析引擎设计方法及装置
Kalampokis et al. ICT tools for creating, expanding and exploiting statistical linked Open Data
Saad et al. OLAP Manipulations on RDF Data following a Constellation Model.
WO2018053889A1 (zh) 分布式计算框架和分布式计算方法
CN113486066B (zh) 一种报表分级汇总的方法及终端
Kwakye et al. Merging multidimensional data models: a practical approach for schema and data instances
Freire et al. Managing XML data: An abridged overview
El-Helw et al. Just-in-time information extraction using extraction views
Giannotti et al. Specifying mining algorithms with iterative user-defined aggregates
Zhong et al. 3SEPIAS: A semi-structured search engine for personal information in dataspace system

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