CN113468208A - 生成数据查询语句的方法和装置、服务器及存储介质 - Google Patents
生成数据查询语句的方法和装置、服务器及存储介质 Download PDFInfo
- Publication number
- CN113468208A CN113468208A CN202110815457.8A CN202110815457A CN113468208A CN 113468208 A CN113468208 A CN 113468208A CN 202110815457 A CN202110815457 A CN 202110815457A CN 113468208 A CN113468208 A CN 113468208A
- Authority
- CN
- China
- Prior art keywords
- data
- column
- aggregation
- columns
- sub
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 69
- 238000003860 storage Methods 0.000 title claims abstract description 22
- 230000002776 aggregation Effects 0.000 claims abstract description 211
- 238000004220 aggregation Methods 0.000 claims abstract description 211
- 238000012216 screening Methods 0.000 claims description 30
- 238000004590 computer program Methods 0.000 claims description 14
- 230000015654 memory Effects 0.000 claims description 11
- 230000004931 aggregating effect Effects 0.000 claims description 5
- 238000000605 extraction Methods 0.000 claims description 4
- 238000013523 data management Methods 0.000 abstract description 3
- 238000001914 filtration Methods 0.000 description 28
- 230000006378 damage Effects 0.000 description 27
- 230000008569 process Effects 0.000 description 10
- 238000011161 development Methods 0.000 description 4
- 101100311330 Schizosaccharomyces pombe (strain 972 / ATCC 24843) uap56 gene Proteins 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 101150018444 sub2 gene Proteins 0.000 description 3
- 238000007405 data analysis Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 238000009795 derivation Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000005304 joining Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000008521 reorganization Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
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/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
- G06F16/244—Grouping and aggregation
-
- 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及数据管理技术领域,尤其涉及一种生成数据查询语句的方法和装置、服务器及存储介质,其中,生成数据查询语句的方法包括:接收数据查询的目标字段;根据目标字段,基于预存的数据表,提取数据表中的列名包含目标字段的目标数据列,目标数据列包括聚合列;根据聚合列所在的数据表的唯一约束,对聚合列进行分组;针对分组得到的每个聚合列分组,生成子查询语句;基于生成的子查询语句,生成数据查询语句。本申请的生成数据查询语句的方法和装置、服务器及存储介质可以解决现有的数据查询方式中对用户的专业知识要求较高而导致数据查询的易用性和普适性较差的问题,允许用户仅输入数据查询的目标字段即可生成数据查询语句。
Description
技术领域
本申请涉及数据管理技术领域,具体而言,涉及一种生成数据查询语句的方法和装置、服务器及存储介质。
背景技术
数据库是基于数据结构来组织、存储和管理数据的数据仓库,是目前主流的数据存储方式,被广泛应用于各种数据存储、分析和管理系统中。
随着信息技术的飞速发展,数据库中存储的数据量较大,数据类型繁多,数据结构越来越复杂,随之需要便捷高效的数据查询方式,以快速找到数据库用户所需的数据。
然而,由于数据库语言属于专业的程序语言,因此在对数据库进行数据查询时,对用户的专业性知识储备要求较高,这对于未掌握数据库程序语言知识的非专业用户而言是困难的,因此,现有的数据查询方式易用性和普适性较差。
发明内容
鉴于现有的数据查询方式中对用户的专业知识要求较高而导致数据查询的易用性和普适性较差的问题,本申请的目的在于提供一种生成数据查询语句的方法和装置、服务器及存储介质,其能够通过根据聚合列所在的数据表的唯一约束对聚合列进行分组并基于分组的聚合列生成子查询语句,并基于子查询语句生成期望的数据查询语句,这使得允许用户仅输入数据查询的目标字段即可生成准确的数据查询语句,大大提高了数据查询的易用性和普适性。
第一方面,本申请实施例还提供了一种生成数据查询语句的方法,所述方法包括:接收数据查询的目标字段;根据所述目标字段,基于预存的数据表,提取所述数据表中的列名包含所述目标字段的目标数据列,其中,所述目标数据列包括聚合列;根据所述聚合列所在的数据表的唯一约束,对所述聚合列进行分组;针对分组得到的每个聚合列分组,生成子查询语句;基于生成的子查询语句,生成数据查询语句。
进一步的,通过以下方式对所述聚合列进行分组:将所述聚合列中的所在的数据表存在唯一约束的聚合列按照唯一约束进行分组,其中,具有相同的唯一约束的聚合列分在同一分组;将所述聚合列中的所在的数据表不存在唯一约束的聚合列按照所在的数据表进行分组,其中,所在的数据表相同的聚合列分在同一分组。
进一步的,所述目标字段包括结果列字段,所述目标数据列还包括基于所述结果列字段提取的非聚合列;针对每个聚合列分组生成子查询语句,包括:将所述非聚合列作为每个聚合列分组的子查询语句的结果列,根据所述非聚合列中的重复字段,对每个聚合列分组中的聚合列进行聚合,以用于生成子查询语句。
进一步的,所述目标字段包括结果列字段,所述目标数据列还包括基于所述结果列字段提取的非聚合列;针对每个聚合列分组生成子查询语句,包括:根据数据表中的数据列之间的关联关系,确定聚合列分组中的聚合列所在的数据表与非聚合列所在的数据表之间的关联列;根据聚合列分组中的聚合列所在的数据表以及非聚合列所在的数据表的优先级,确定聚合列和非聚合列的连接顺序;基于所述关联列和所述连接顺序,将非聚合列与聚合列分组中的聚合列进行连接,以用于生成子查询语句。
进一步的,通过以下方式中的一者或多者确定数据表的优先级:具有唯一约束的数据表的优先级高于不具有唯一约束的数据表的优先级;单列中数据数量最多的数据表具有最高优先级。
进一步的,所述目标字段包括筛选条件;基于生成的子查询语句,生成数据查询语句,包括:确定所述筛选条件的类型,根据所述筛选条件的类型,将所述筛选条件添加到生成的子查询语句,得到筛选的子查询语句;基于所述筛选的子查询语句,生成数据查询语句。
进一步的,所述筛选条件包括通用条件和/或指定条件;所述通用条件用于对生成的子查询语句中的所有子查询语句进行筛选,所述指定条件包含指向所述目标数据列中的部分目标数据列的指定信息并且用于对生成的子查询语句中的与所述指定信息关联的子查询语句进行筛选。
进一步的,基于生成的子查询语句,生成数据查询语句,包括:基于每个子查询语句中的相等的非聚合列,对生成的子查询语句进行连接,以生成数据查询语句。
进一步的,所述数据表中的每个数据表最多具有一个唯一约束,不同所述数据表的关联字段之间的关联关系为一一对应关联关系。
第二方面,本申请实施例还提供了一种生成数据查询语句的装置,包括:接收单元,接收数据查询的目标字段;提取单元,根据所述目标字段,基于预存的数据表,提取所述数据表中的列名包含所述目标字段的目标数据列,其中,所述目标数据列包括聚合列;分组单元,根据所述聚合列所在的数据表的唯一约束,对所述聚合列进行分组;子查询语句生成单元,针对分组得到的每个聚合列分组,生成子查询语句;数据查询语句生成单元,基于生成的子查询语句,生成数据查询语句。
第三方面,本申请实施例还提供了一种服务器,所述服务器包括处理器和存储器,所述存储器存储有所述处理器可执行的计算机程序,所述处理器执行所述计算机程序时实现如所述第一方面任一项所述的方法的步骤。
第四方面,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如所述第一方面任一项所述方法的步骤。
本申请实施例提供的生成数据查询语句的方法和装置、服务器及存储介质,根据数据查询的目标字段,可以基于预存的数据元信息提取包括聚合列的目标数据列,并且可根据聚合列所在的数据表的唯一约束,对聚合列进行分组,针对聚合列分组生成子查询语句,从而可以基于生成的子查询语句生成数据查询语句。与现有技术中的需要用户掌握专业数据库知识进行数据查询的方法相比,根据本申请实施例的生成数据查询语句的方法和装置、服务器及存储介质能够在用户仅输入简单表示的目标字段的情况下即可实现数据查询。
进一步地,根据本申请的生成数据查询语句的方法和装置、服务器及存储介质,可以根据聚合列所在的数据表是否存在唯一约束进行分组,使得最大程度确保聚合结果的一致性,优化数据查询语句的生成。
进一步地,根据本申请的生成数据查询语句的方法和装置、服务器及存储介质,在用户期望查询的结果列包括非聚合列的情况下,可基于所述非聚合列对每个聚合列分组进行聚合,以生成子查询语句,从而可针对每个子查询语句进行聚合,可大大提高聚合结果的一致性,避免或至少减少查询报错的情况。
进一步地,根据本申请的生成数据查询语句的方法和装置、服务器及存储介质,可以基于数据表的表结构中数据列之间的关联关系以及连接顺序执行每个子查询语句内部的连接,确保子查询内部的正确连接,并且确保在连接后各个数据表的数据不会丢失。
进一步地,根据本申请的生成数据查询语句的方法和装置、服务器及存储介质,可以根据筛选条件的类型而针对每个子查询进行筛选,从而可基于诸如通用条件和指定条件的筛选条件有针对性地对全部或部分子查询进行筛选,为用户提供了数据查询的更多可能性。
进一步地,根据本申请的生成数据查询语句的方法和装置、服务器及存储介质,可以基于所有子查询语句中的相等的非聚合列进行连接以生成最终的数据查询语句,确保各个子查询语句能够正确连接,以返回用户期望的数据查询结果。
为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本申请实施例所提供的一种生成数据查询语句的方法的流程示意图;
图2示出了本申请实施例所提供的一种生成数据查询语句的方法的生成子查询语句的步骤的流程示意图;
图3示出了本申请实施例所提供的一种生成数据查询语句的装置的结构示意图;
图4示出了本申请实施例所提供的一种服务器的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的每个其他实施例,都属于本申请保护的范围。
首先,对本申请可适用的应用场景进行介绍。本申请可应用于结构化查询语言(SQL)数据库的数据查询,并且下文将以SQL数据库的应用场景为例对本申请的实施例进行详细描述,但是应理解的是,本申请适用的应用场景不限于此,本申请意在提供一种数据查询的独特构思,而不意在限制该构思的具体应用场景或应用方式,只要是涉及到本申请所提供的构思的相关场景,即可应用本申请所提供的构思。
值得注意的是,在现有的数据查询过程中,一般是采用SQL语句执行工具,通过输入命令行或自行输入SQL语句来返回执行结果,然而,这种执行工具一般是为开发者所使用,其要求使用者掌握完备的SQL语句编程知识并且还需要了解数据库中的数据表的表结构以及列之间的关联关系,非专业用户难以实施。
除此之外,也可以通过一些针对用户需求专门开发的特定服务来实现数据查询,例如,可预选获取用户的数据查询需求,根据该需求通过预定义的逻辑定制数据查询页面,当用户访问该页面时,可获取到数据查询结果。尽管不需要用户掌握数据库相关的专业知识,然而,这种方式使得数据库与用户的交互隔离,不具有实时查询的功能,用户仅能看到预定义的数据查询结果,当数据查询需求改变时,则无法获得用户期望的结果。此外,这种方式需要针对每一种查询需求进行相应的开发,开发周期较长,无法满足在数据分析时多变的不同需求,并且在开发过程中需要同时考虑到数据格式、实际需求、页面实现等内容,需要开发人员同时具有这三方面的知识,对开发过程的技术要求较高。
另外,也存在一些辅助性数据查询工具,诸如微软公司开发的PowerBI系统等的专业数据查询系统,其可将数据可视化呈现,然而,这些辅助性数据查询工具虽然相较于SQL语言而言降低了对使用者的专业知识的要求,但是仍然需要基本的数据库知识来执行查询并且还需要了解数据库中的数据表的表结构以及列之间的关联关系,特别是在面对复杂的查询操作时,用户需要根据SQL语言的逻辑来输入查询语句,因此,这类查询工具的操作难度仍然很高。
基于此,本申请实施例提供了一种生成数据查询语句的方法,以允许用户在不具有专业数据库知识的情况下也能够进行数据查询,实现数据便捷高效的查询。
请参阅图1,图1为本申请实施例所提供的一种生成数据查询语句的方法的流程示意图。这里,本申请实施例所提供的生成数据查询语句的方法的执行主体可以是能够从数据库中查询和调用数据的设备,例如可以是数据库服务器。
所如图1中所示,本申请实施例提供的生成数据查询语句的方法包括以下步骤:
S101、接收数据查询的目标字段。
在该步骤中,目标字段可以表示数据查询需求,其可以是用户输入的查询请求。作为示例,目标字段可以包括结果列字段,可选地,目标字段还可以包括筛选条件。
这里,结果列指的是将出现在数据查询的结果表中的数据列,结果列字段可以是结果列的列名。例如,用户期望查询在某游戏中的不同角色职业的平均伤害,则数据查询的结果表可包括“角色职业”列和“平均伤害”列两个结果列,相应地,结果列字段可以包括“角色职业”和“平均伤害”。
筛选条件可以用于对数据的查询范围进行筛选,例如其可以限制出现在数据查询的结果表中的数据。例如,筛选条件可以对结果列中的数据的生成时间、数据类型、数据值的取值范围等进行筛选。例如,筛选条件可以包括条件“角色职业为1/2/3”和条件“日期为2021-04-01到2021-04-10”。
这里,目标字段可以通过在预设的多个备选项中进行选择而生成,也可以由用户直接输入。
S102、根据目标字段,基于预存的数据表,提取数据表中的列名包含目标字段的目标数据列。
在该步骤中,预存的数据表可以指的是在数据查询时数据库中已存储有的数据表。
作为示例,每个数据表可具有相应的数据元信息,可基于数据表的数据元信息提取目标数据列,这里,数据元信息可以包括表名、表的唯一约束、列名以及列之间的关联关系,数据元信息还可以包括列类型以及列的可用聚合/派生方式。
在数据准备阶段中,可生成数据表或获取现有的数据表,并可提供数据元信息,从而可以根据用户输入的目标字段以及预存的数据表的数据元信息生成数据查询语句。
例如,可建立用于接收用户输入的目标字段并且基于目标字段从数据库中进行查询的数据查询系统,数据元信息可输入到这样的数据查询系统中,可以通过数据查询系统根据目标字段和数据元信息生成数据查询语句。
在一些实施例中,可对预存的数据表的表结构设置限制,以优化数据查询语句的生成,减少在生成语句过程中的报错。
在一种情况下,每个数据表可最多具有一个唯一约束,即,存在一个唯一约束字段,或者唯一约束字段被标注为空(null)。这里,唯一约束包括主键约束。唯一约束(UniqueConstraint)可以指在数据表的所有记录中字段的值不能重复出现。例如,可在id字段加上唯一约束,则每条记录的id值是唯一的,不会出现重复。唯一约束可用于限制数据列上的数据的唯一性。
一般来说,在一个数据表上可存在多个唯一约束,然而,在本申请实施例的数据查询中,可以使预设的数据表的表结构最多具有一个唯一约束,以使得子查询之间拥有相同的唯一约束,从而最大程度确保聚合结果的一致性,优化数据查询语句的生成,减少在生成语句过程中的报错。
在另一情况下,不同数据表的关联字段之间的关联关系可以为一一对应关联关系,以减少由于列之间存在多对一的关联关系而使得数据查询报错的情况发生。
具体来说,在任意两个数据表之间,不允许一个数据表的不同字段关联到另一个数据表的相同字段。在数据表的不同字段关联到另一数据表的同一字段的情况下,在生成查询语句时,可能出现连接(JOIN)冲突,例如,在pve表的rid1列和rid2列均与p1表的rid列存在关联关系时,在将两个表进行连接时,会出现连接(JOIN)条件为“p1.rid=pve.rid1AND p1.rid=pve.rid2”的语句,这会使得在连接后的结果中出现两个rid列,使得数据查询出错。
需要说明的是,尽管上面两种情况中分别为数据表的表结构设置了优选的限制,然而这些限制不是必须的,可在不设置这些限制的情况下实施本申请实施例的方法,也可仅设置其中的一种限制。
返回参照步骤S102,目标数据列可以指的是数据表中的列名包含目标字段的数据列,数据列的列名例如可以从数据表中提取,也可以基于数据表的数据元信息提取,以用于生成查询语句。
这里,提取目标数据列方式可以根据在步骤S101中所述的接收目标字段的方式的不同而不同。
具体来说,在通过选择预设的备选项而生成目标字段的情况下,可以例如通过页面选项控件等方式展示数据表表名以及数据表中的所有数据列的列名,数据表表名和数据列列名可以采用分级展示的方式,表名可展示为一级选项,列名可为相应的表名下拉展示的二级选项。此外,可在数据表表名和数据列列名后标注其所表示的数据含义。例如,数据表表名可展示为“p1(玩家数据表)”,并且可在该数据表表名的下拉菜单中显示数据列列名“career(角色职业)”。如此方式,一方面,方便用户选择所需的数据列;另一方面,用户可了解到数据库中是否存储有所需的数据,在备选项中没有所需的数据列时,用户可停止数据查找操作。
在目标字段由用户直接输入的情况下,目标字段可以是用户直接输入的期望获得的数据名称,可在数据库中检索与用户输入的目标字段相关的数据列名并且可向用户展示检索到的数据列列名,可在检索到的数据列列名中选择期望的数据列。在该示例中,可对目标字段进行语料拆分、重组和/或关联转换,其中,拆分可以指的是可将输入的目标字段拆分为多个字段;重组可以指的是可将拆分出来的字段进行重新组合,例如改变字段的先后顺序;关联转换可以指的是查找与输入的目标字段相关联的近义词或同义词字段,例如可以从预建立的语料关联关系中查找。例如,用户可以直接输入中文“角色职业”作为目标字段,可在数据库中检索与“角色”、“职业”、“career”相关的列名。
根据本申请的实施例,根据目标字段提取出的目标数据列可以包括聚合列,例如,“pve”表(PVE副本表)中可存在“damage”列(伤害列),而目标字段可以包括“PVE副本的平均伤害”,在此情况下,可提取聚合列“avg(pve.damage)”(PVE副本的平均伤害)。
在一些实施例中,目标字段可以包括聚合列和非聚合列二者,例如,在上述示例中,“p1”表(玩家数据表)中存在“career”列(角色职业列),目标字段还可以包括“角色职业”,在此情况下,除了提取出聚合列“avg(pve.damage)”外,还可提取非聚合列“p1.career”(玩家的角色职业)。
此外,如上文中所述,目标字段可以包括结果列字段,还可以包括筛选条件,因此,可以根据结果列字段提取将出现在结果表中的目标数据列,还可以根据筛选条件提取不会出现在结果表中而是用于筛选结果表中的结果列的目标数据列,这里,根据结果列字段提取的目标数据列和根据筛选条件提取的目标数据列均可以包括聚合列,或者包括聚合列和非聚合列二者。
S103、根据聚合列所在的数据表的唯一约束,对聚合列进行分组。
在该步骤中,可对根据目标字段提取出的目标数据列中的聚合列进行分组,这里,进行分组操作的聚合列包括根据目标字段提取出的所有聚合列,具体来说,可以包括基于结果列字段提取的聚合列,还可以包括基于筛选条件提取的聚合列。
作为示例,可根据每个聚合列所在的原始数据表中是否存在唯一约束来分组。
具体来说,对于聚合列中的所在的数据表存在唯一约束的聚合列,可按照唯一约束进行分组,可以将具有相同的唯一约束的聚合列分在同一分组;对于聚合列中的所在的数据表不存在唯一约束(即,唯一约束字段为空(null))的聚合列,可按照聚合列所在的数据表进行分组,具体地,可将所在的数据表相同的聚合列分在同一分组。
需要说明的是,以上给出的仅是按照是否唯一约束对聚合列进行分组的一个示例,本申请不限于上述方式,也可采用其他分组方式,例如根据唯一约束的类型对聚合列进行分组。
S104、针对分组得到的每个聚合列分组,生成子查询语句。
在该步骤中,可以根据目标数据列是否包括非聚合列,针对每个聚合列分组生成子查询语句。
在目标数据列包括非聚合列的情况下,可以将非聚合列与每个聚合列分组所在数据表进行连接(JOIN ON),并基于非聚合列对每个聚合列分组进行聚合(GROUP BY),以生成子查询语句。
一方面,连接(JOIN ON)指的是将两个以上的数据表连接在一起以形成一个新的数据表。参照图2,作为示例,可以通过以下方式将非聚合列与每个聚合列分组所在的数据表进行连接(JOIN ON):
S1041、根据数据表中的数据列之间的关联关系,确定聚合列分组中的聚合列所在的数据表与非聚合列所在的数据表之间的关联列。
在该步骤S1041中,例如可以从上面描述的数据元信息中确定数据列之间的关联关系,从而可以确定在同一聚合列分组中的各个聚合列所在的原始数据表与非聚合列所在的数据表之间的关联列。这里,关联关系指的是不同数据表的列之间的对应性,存在关联关系的两个列互为关联列,关联列之间具有重复的字段。
以上面的示例为例,目标数据列可包括非聚合列“p1.career”(角色职业),其所在的原始数据表为“p1”表,聚合列分组可包括聚合列“avg(pve.damage)”(PVE副本的平均伤害),其所在的原始数据表为“pve”表,其中,“p1”表包括“rid”列和“ds”列,“pve”表包括“rid”列和“ds”列,数据元信息中可存在关联关系:“p1.rid<->pve.rid”以及“p1.ds<->pve.ds”,从而可以确定聚合列分组中的聚合列“avg(pve.damage)”所在的数据表“pve”与非聚合列“p1.career”所在的数据表“p1”之间的关联列为“p1”表的“rid”列与“pve”表的“rid”列以及“p1”表的“ds”列与“pve”表的“ds”列。
S1042、根据聚合列分组中的聚合列所在的数据表以及非聚合列所在的数据表的优先级,确定聚合列和非聚合列的连接顺序。
在该步骤S1042中,数据表的优先级可以用于确定数据表的连接顺序,其可以根据需要按照预定的规则来定义。
作为示例,可以通过以下方式中的一者或多者确定数据表的优先级:
具有唯一约束的数据表的优先级高于不具有唯一约束的数据表的优先级;单列中数据数量最多的数据表具有最高优先级。
具体来说,可以按照聚合列和非聚合列所在的原始数据表是否存在唯一约束来排列列的连接顺序,具有唯一约束的数据表在先连接,例如在左连接(LEFT JOIN)的情况下,具有唯一约束的数据表可置于不具有唯一约束的数据表的左侧。
此外,可将单列中数据数量最多的数据表作为基础表进行连接,即,作为连接的第一个/起始数据表,例如,在左连接的情况下,基础表可作为左表,其他数据表作为右表进行连接。如此,可避免连接后部分数据表中的数据丢失。
在本申请的实施例中,对数据列的连接方式不作具体限制,可根据实际查询需求进行选择,例如可采用左连接、右连接或全连接的方式。
S1043、基于关联列和连接顺序,将非聚合列与聚合列分组中的聚合列进行连接,以用于生成子查询语句。
在该步骤S1043中,可基于关联列确定连接的相等条件,以对各个列进行连接。这里,连接的相等条件指的是从除了基础表之外的数据表中找到关联到作为基础表的数据表的唯一约束所包含的列的所有列,使得找到的所有列在基础表和其他数据表中全部相等。
例如,如上面的示例中所述,“p1”表的“rid”列和“ds”列可以为唯一约束,“pve”表的“rid”列和“ds”列分别与“p1”表的“rid”列和“ds”列关联,因此,在连接中的相等条件为“p1.rid=pve.rid”以及“p1.ds=pve.ds”。
如此,可基于连接的相等条件以及在步骤S1042中确定的数据表的连接顺序对非聚合列和聚合列进行连接。
继续以上面的示例为例,在左连接的情况下,子查询语句中的连接语句可表示为“FROM p1 LEFT JOIN pve ON p1.rid=pve.rid AND p1.ds=pve.ds”。
另一方面,聚合(GROUP BY)可以指的是根据指定的规则将数据划分为若干区域,以针对每个区域进行数据处理。
作为示例,可以通过以下方式基于非聚合列对每个聚合列分组进行聚合(GROUPBY):
将非聚合列作为每个聚合列分组的子查询语句的结果列,根据非聚合列中的重复字段,对每个聚合列分组中的聚合列进行聚合(GROUP BY),以生成子查询语句。
对于每个聚合列分组而言,每个子查询的结果列包括将出现在结果表中的所有非聚合列以及该聚合列分组内的将出现在结果表中的所有聚合列,可基于非聚合列对每个聚合列分组的聚合列进行聚合。
具体来说,非聚合列中可包括重复字段,可将这些重复字段进行分类汇总,将相同的字段汇总在一起。相应地,在非聚合列的重复字段汇总过程中,聚合列中的与非聚合列的重复字段对应的数据被聚合。
例如,非聚合列“p1.career”中包括字段取值“career1”、“career2”和“career3”,可分别基于字段取值“career1”、“career2”和“career3”对聚合列“avg(pve.damage)”进行聚合,即,可分别计算字段取值“career1”所对应的“avg(pve.damage)”、计算字段取值“career2”所对应的“avg(pve.damage)”和计算字段取值“career3”所对应的“avg(pve.damage)”,如此,在子查询的结果表中,非聚合列将出现无重复的字段取值“career1”、“career2”和“career3”,聚合列将出现与各个字段取值对应的“avg(pve.damage)”。
在根据本申请实施例的生成数据查询语句的方法中,当根据目标字段确定结果列中包含聚合列时,可以将聚合列进行分组并对分组的聚合列进行组内聚合来生成子查询语句,再将各个子查询进行连接,以生成最终的数据查询语句。如此,可确保各个子查询之间拥有相同的唯一约束,进而可确保数据查询的结果表具有确定的唯一约束,这与首先生成子查询、再连接子查询而最后进行聚合的数据查询方式相比,可以确保聚合结果的一致性,特别是,在结果列包括非聚合列并且非聚合列对应于多个聚合列的情况下,通过预先分组聚合生成子查询而最后进行连接的方式,可大大提高聚合结果的一致性,避免或至少减少查询报错的情况。
与上面描述的类似,在目标数据列仅包括聚合列而不包括非聚合列的情况下,可以对每个聚合列分组中的聚合列进行连接(JOIN ON)和聚合(GROUP BY),以生成子查询语句。
对于连接而言,与上面描述的类似,可以通过以下方式对聚合列分组进行连接:
S1044、根据数据表中的数据列之间的关联关系,确定聚合列分组中的聚合列所在的数据表的关联列;S1045、根据聚合列分组中的聚合列所在的数据表的优先级,确定聚合列的连接顺序;S1046、基于关联列和连接顺序,将聚合列分组中的聚合列进行连接,以用于生成子查询语句。
在步骤S1044中,可以从数据元信息中确定数据列之间的关联关系,从而可以确定在同一聚合列分组中的各个聚合列所在的原始数据表之间的关联列。
以上面的示例为例,聚合列分组可包括聚合列“avg(pve.damage)”(PVE副本的平均伤害)和“max(pvp.damage)”(PVP副本的最大伤害),二者所在的原始数据表分别为“pve”表和“pvp”表,其中,“pve”表包括“rid”列和“ds”列,“pvp”表包括“rid”列和“ds”列,数据元信息中可存在关联关系:“pve.rid<->pvp.rid”以及“pve.ds<->pvp.ds”,从而可以确定聚合列分组中的聚合列“avg(pve.damage)”所在的数据表“pve”与聚合列“max(pvp.damage)”所在的数据表“pvp”之间的关联列为“pve”表的“rid”列与“pvp”表的“rid”列以及“pve”表的“ds”列与“pvp”表的“ds”列。
在步骤S1045和步骤S1046中,聚合列所在的数据表的优先级和连接顺序的确定方式、表之间的连接方式以及连接的相等条件与在上面步骤S1042和步骤S1043中描述的相似,故在此均不再赘述。
对于聚合而言,在目标数据列仅包括聚合列而不包括非聚合列的情况下,可以基于“1”值对每个聚合列分组进行聚合(GROUP BY)。
具体来说,对于每个聚合列分组,每个子查询的结果列仅包括该聚合列分组内的将出现在结果表中的所有聚合列,可对每个聚合列的所有数据进行聚合,即,最终聚合结果为每个聚合列包括一个单值数据。这与目标数据列包括非聚合列的情况不同,其可用于表示聚合列中的所有数据的总体汇总情况,而不对其进行分类汇总。
返回参照图1,S105、基于生成的子查询语句,生成数据查询语句。
在该步骤中,可根据目标字段中是否包括筛选条件来基于子查询语句生成数据查询语句。
在目标字段包括筛选条件的情况下,基于生成的子查询语句,生成数据查询语句,可包括以下步骤:
S1051、确定筛选条件的类型,根据筛选条件的类型,将筛选条件添加到生成的子查询语句,得到筛选的子查询语句。
在该步骤S1051中,在一示例中,筛选条件可以包括通用条件,通用条件指的是用于对生成的子查询语句中的所有子查询语句进行筛选的条件。通用条件可以是对日期、服务器等的筛选条件,例如,通用条件可以为条件“日期为2021-04-01到2021-04-10”。
此外,如上面步骤S1043中所述,由于每个子查询的结果列包括将出现在结果表中的所有非聚合列,因此,通用条件可以是对非聚合列的筛选。例如,对于非聚合列“p1.career”(角色职业),可存在通用条件“角色职业为career1/career2/career3”,从而可将通用条件添加到每个子查询语句中,以对子查询结果中的非聚合列“p1.career”(角色职业)进行筛选,得到筛选的子查询语句。
在另一示例中,筛选条件可以包括指定条件,指定条件可包含指向目标数据列中的部分目标数据列的指定信息,指定条件可用于对生成的子查询语句中的与该指定信息关联的子查询语句进行筛选,得到筛选的子查询语句。因此,指定条件可以是用于对生成的子查询语句中的部分子查询语句进行筛选的条件。
例如,目标数据列可包括非聚合列“p1.career”(角色职业)以及聚合列“avg(pve.damage)”(PVE副本的平均伤害)和“avg(pvp.damage)”(PVP副本的平均伤害),指定条件可以为条件“PVE副本名称为A1/A2”和条件“PVP副本名称为B1/B2”,其中,条件“PVE副本名称为A1/A2”包含指向聚合列“avg(pve.damage)”的指定信息“PVE副本”,条件“PVP副本名称为B1/B2”包含指向聚合列“avg(pvp.damage)”的指定信息“PVP副本”。
这里,若在对聚合列进行分组时,聚合列“avg(pve.damage)”和聚合列“avg(pvp.damage)”被分在不同的分组中,从而其分别对应于不同的子查询语句,因此,可将两个指定条件分别应用于不同的子查询语句,即,将条件“PVE副本名称为A1/A2”应用于聚合列“avg(pve.damage)”所在的聚合列分组所对应的子查询语句,而可将条件“PVP副本名称为B1/B2”应用于聚合列“avg(pvp.damage)”所在的聚合列分组所对应的子查询语句。
作为一示例,可预先定义有不同筛选条件以及其类型,例如,可向用户提供作为通用条件的筛选条件和作为指定条件的筛选条件的备选项,用户可从备选项中选择期望的筛选条件,并为各个筛选条件设置筛选值。例如,可提供作为通用条件的筛选条件“日期”的备选项,用户可选择该“日期”备选项,并且输入对日期的筛选值,例如“2021-04-01至2021-04-10”。例如,可提供作为指定条件的筛选条件“PVE副本名称”的备选项,用户可选择该“PVE副本名称”备选项,并且输入对PVE副本名称的筛选值,例如“A1/A2”。
作为另一示例,用户也可以直接输入包括多个筛选条件的筛选条件语句,例如,筛选条件语句可以为“ds=1AND career=2AND(pve.scene=3OR pvp.scene=4))”,其中,通过逻辑连接词“AND”连接的筛选条件为通用条件,通过逻辑连接词“OR”连接的筛选条件为指定条件。
此外,若出现通过逻辑连接词“AND”连接指定条件的情况,例如,“PVE副本名称为A1&PVP副本伤害>1000”,由于该筛选条件同时包含两个子查询的列,因此无法单独应用到指定的子查询,此时可返回查询失败并报错的查询结果。
S1052、基于筛选的子查询语句,生成数据查询语句。
在该步骤S1052中,在目标数据列包括非聚合列的情况下,可基于筛选的子查询语句中的相等的非聚合列,对筛选的子查询语句进行连接(JOIN ON),以生成数据查询语句。
具体来说,可以确定所有筛选的子查询语句中的相等的非聚合列,基于该非聚合列将所有筛选的子查询语句连接,例如,在第一子查询语句sub1中,可包括非聚合列“sub1.career”;在第二子查询语句sub2中,可包括非聚合列“sub2.career”,非聚合列“sub1.career”可与非聚合列“sub2.career”相等,因此,可基于非聚合列的相等条件,将第一子查询语句和第二子查询语句连接,以生成数据查询语句,即,“FROM sub1 LEFT JOINsub2 ON sub1.career=sub2.career”。
这里,在子查询语句之间的连接中,连接顺序可以是任意的。
在目标数据列仅包括聚合列而不包括非聚合列的情况下,所有筛选的子查询语句的聚合列均为一个单值数据,在此情况下,可直接将所有子查询语句并列合并,形成最终的数据查询语句。
返回步骤S105,在目标字段不包括筛选条件的情况下,基于生成的子查询语句,生成数据查询语句的步骤可省去对生成的子查询语句的筛选过程,而直接执行对生成的子查询语句进行连接,从而生成最终的数据查询语句。对生成的子查询语句的连接的具体步骤与如上面步骤S1052中对筛选的子查询语句的连接的步骤相似,故在此不再赘述。
根据本申请实施例的方法,基于生成的数据查询语句,可查询到最终结果,从而可以从最终的查询结果表中选择需要的列作为最终返回的查询结果,例如,可从最终的查询结果表中去掉根据筛选条件提取的用于对进行筛选的数据列。
根据本实施例的方法,可以基于数据元信息和用户输入的目标字段,生成数据获取和聚合的诸如SQL语句的数据查询语句,用户仅需要输入预期结果所包含的目标字段即可实现数据查询,大大简化了数据查询的难度,允许不具备数据库专业知识的非专业用户进行自主查询,减少对专业数据管理人员的依赖。
基于同一申请构思,本申请实施例还提供了一种生成数据查询语句的装置,生成数据查询语句的装置主要用于执行本申请实施例上述内容所提供的生成数据查询语句的方法,以下对本申请实施例提供的生成数据查询语句的装置做具体介绍。
图3示出了本申请实施例所提供的一种生成数据查询语句的装置的结构示意图。生成数据查询语句的装置可包括接收单元10、提取单元20、分组单元30、子查询语句生成单元40和数据查询语句生成单元50,其中,
接收单元10,用于接收数据查询的目标字段;
提取单元20,用于根据目标字段,基于预存的数据表,提取数据表中的列名包含目标字段的目标数据列,其中,目标数据列包括聚合列;
分组单元30,用于根据聚合列所在的数据表的唯一约束,对聚合列进行分组;
子查询语句生成单元40,用于针对分组得到的每个聚合列分组,生成子查询语句;
数据查询语句生成单元50,用于基于生成的子查询语句,生成数据查询语句。
在根据本申请实施例的生成数据查询语句的装置中,当根据目标字段确定目标数据列中包含聚合列时,可以根据聚合列所在的数据表的唯一约束对聚合列进行分组并基于分组的聚合列生成子查询语句,再基于各个子查询生成最终的数据查询语句。如此,可允许用户仅输入数据查询的目标字段即可生成准确的数据查询语句,大大提高了数据查询的易用性和普适性。
进一步地,分组单元30还用于:将聚合列中的所在的数据表存在唯一约束的聚合列按照唯一约束进行分组,其中,具有相同的唯一约束的聚合列分在同一分组;将聚合列中的所在的数据表不存在唯一约束的聚合列按照所在的数据表进行分组,其中,所在的数据表相同的聚合列分在同一分组。
进一步地,目标字段包括结果列字段,目标数据列还包括基于结果列字段提取的非聚合列;子查询语句生成单元40还用于:将非聚合列作为每个聚合列分组的子查询语句的结果列,根据非聚合列中的重复字段,对每个聚合列分组中的聚合列进行聚合,以用于生成子查询语句。
进一步地,子查询语句生成单元40还用于:根据数据表中的数据列之间的关联关系,确定聚合列分组中的聚合列所在的数据表与非聚合列所在的数据表之间的关联列;根据聚合列分组中的聚合列所在的数据表以及非聚合列所在的数据表的优先级,确定聚合列和非聚合列的连接顺序;基于关联列和连接顺序,将非聚合列与聚合列分组中的聚合列进行连接,以用于生成子查询语句。
进一步地,子查询语句生成单元40还用于通过以下方式中的一者或多者确定数据表的优先级:具有唯一约束的数据表的优先级高于不具有唯一约束的数据表的优先级;单列中数据数量最多的数据表具有最高优先级。
进一步地,目标字段包括筛选条件;数据查询语句生成单元50还用于:确定筛选条件的类型,根据筛选条件的类型,将筛选条件添加到生成的子查询语句,得到筛选的子查询语句;基于筛选的子查询语句,生成数据查询语句。
进一步地,筛选条件包括通用条件和/或指定条件;通用条件用于对生成的子查询语句中的所有子查询语句进行筛选,指定条件包含指向目标数据列中的部分目标数据列的指定信息并且用于对生成的子查询语句中的与指定信息关联的子查询语句进行筛选。
进一步地,数据查询语句生成单元50还用于:基于每个子查询语句中的相等的非聚合列,对生成的子查询语句进行连接,以生成数据查询语句。
进一步地,数据表中的每个数据表最多具有一个唯一约束,不同数据表的关联字段之间的关联关系为一一对应关联关系。
本申请实施例所提供的装置,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,前述描述的系统、装置和单元的具体工作过程,均可以参考上述方法实施例中的对应过程,在此不再赘述。本申请实施例提供的生成数据查询语句的装置与上述实施例提供的生成数据查询语句的方法具有相同的技术特征,所以也能解决相同的技术问题,达到相同的技术效果。
基于同一申请构思,本申请实施例还提供了一种服务器,具体地,参照图4,服务器100可包括处理器101、存储器102和总线,处理器101与存储器102之间通过总线通信,存储器102存储有处理器101可执行的计算机程序,处理器101执行计算机程序时实现如上所述的生成数据查询语句的方法的步骤,具体实现方式可参见方法实施例,在此不再赘述。
具体地,上述处理器101和存储器102能够为通用的处理器和存储器,这里不做具体限定,当处理器101运行存储器102存储的计算机程序时,能够执行上述生成数据查询语句的方法。
对应于上述生成数据查询语句的方法,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序在被处理器调用和运行时,所述计算机程序促使所述处理器运行上述生成数据查询语句的方法的步骤,具体实现方式可参见方法实施例,在此不再赘述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本申请的具体实施方式,用以说明本申请的技术方案,而非对其限制,本申请的保护范围并不局限于此,尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本申请实施例技术方案的精神和范围,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (12)
1.一种生成数据查询语句的方法,其特征在于,所述方法包括:
接收数据查询的目标字段;
根据所述目标字段,基于预存的数据表,提取所述数据表中的列名包含所述目标字段的目标数据列,其中,所述目标数据列包括聚合列;
根据所述聚合列所在的数据表的唯一约束,对所述聚合列进行分组;
针对分组得到的每个聚合列分组,生成子查询语句;
基于生成的子查询语句,生成数据查询语句。
2.根据权利要求1所述的方法,其特征在于,通过以下方式对所述聚合列进行分组:
将所述聚合列中的所在的数据表存在唯一约束的聚合列按照唯一约束进行分组,其中,具有相同的唯一约束的聚合列分在同一分组;
将所述聚合列中的所在的数据表不存在唯一约束的聚合列按照所在的数据表进行分组,其中,所在的数据表相同的聚合列分在同一分组。
3.根据权利要求1所述的方法,其特征在于,所述目标字段包括结果列字段,所述目标数据列还包括基于所述结果列字段提取的非聚合列;针对每个聚合列分组生成子查询语句,包括:
将所述非聚合列作为每个聚合列分组的子查询语句的结果列,根据所述非聚合列中的重复字段,对每个聚合列分组中的聚合列进行聚合,以用于生成子查询语句。
4.根据权利要求1所述的方法,其特征在于,所述目标字段包括结果列字段,所述目标数据列还包括基于所述结果列字段提取的非聚合列;针对每个聚合列分组生成子查询语句,包括:
根据数据表中的数据列之间的关联关系,确定聚合列分组中的聚合列所在的数据表与非聚合列所在的数据表之间的关联列;
根据聚合列分组中的聚合列所在的数据表以及非聚合列所在的数据表的优先级,确定聚合列和非聚合列的连接顺序;
基于所述关联列和所述连接顺序,将非聚合列与聚合列分组中的聚合列进行连接,以用于生成子查询语句。
5.根据权利要求4所述的方法,其特征在于,通过以下方式中的一者或多者确定数据表的优先级:
具有唯一约束的数据表的优先级高于不具有唯一约束的数据表的优先级;
单列中数据数量最多的数据表具有最高优先级。
6.根据权利要求1至5中的任一项所述的方法,其特征在于,所述目标字段包括筛选条件;基于生成的子查询语句,生成数据查询语句,包括:
确定所述筛选条件的类型,根据所述筛选条件的类型,将所述筛选条件添加到生成的子查询语句,得到筛选的子查询语句;
基于所述筛选的子查询语句,生成数据查询语句。
7.根据权利要求6所述的方法,其特征在于,所述筛选条件包括通用条件和/或指定条件;所述通用条件用于对生成的子查询语句中的所有子查询语句进行筛选,所述指定条件包含指向所述目标数据列中的部分目标数据列的指定信息并且用于对生成的子查询语句中的与所述指定信息关联的子查询语句进行筛选。
8.根据权利要求3所述的方法,其特征在于,基于生成的子查询语句,生成数据查询语句,包括:
基于所有子查询语句中的相等的非聚合列,对生成的子查询语句进行连接,以生成数据查询语句。
9.根据权利要求1所述的方法,其特征在于,所述数据表中的每个数据表最多具有一个唯一约束,不同所述数据表的关联字段之间的关联关系为一一对应关联关系。
10.一种生成数据查询语句的装置,其特征在于,包括:
接收单元,接收数据查询的目标字段;
提取单元,根据所述目标字段,基于预存的数据表,提取所述数据表中的列名包含所述目标字段的目标数据列,其中,所述目标数据列包括聚合列;
分组单元,根据所述聚合列所在的数据表的唯一约束,对所述聚合列进行分组;
子查询语句生成单元,针对分组得到的每个聚合列分组,生成子查询语句;
数据查询语句生成单元,基于生成的子查询语句,生成数据查询语句。
11.一种服务器,其特征在于,所述服务器包括处理器和存储器,
所述存储器存储有所述处理器可执行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求1至9中的任一项所述的方法的步骤。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如权利要求1至9中的任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110815457.8A CN113468208A (zh) | 2021-07-19 | 2021-07-19 | 生成数据查询语句的方法和装置、服务器及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110815457.8A CN113468208A (zh) | 2021-07-19 | 2021-07-19 | 生成数据查询语句的方法和装置、服务器及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113468208A true CN113468208A (zh) | 2021-10-01 |
Family
ID=77881328
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110815457.8A Pending CN113468208A (zh) | 2021-07-19 | 2021-07-19 | 生成数据查询语句的方法和装置、服务器及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113468208A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114356965A (zh) * | 2022-03-18 | 2022-04-15 | 杭州湖畔网络技术有限公司 | 动态表单的生成方法、系统、服务器及存储介质 |
CN114840724A (zh) * | 2022-04-26 | 2022-08-02 | 北京百度网讯科技有限公司 | 一种查询方法、装置、电子设备及存储介质 |
CN114969044A (zh) * | 2022-05-30 | 2022-08-30 | 北京火山引擎科技有限公司 | 一种基于数据湖的物化列创建方法以及数据查询方法 |
CN115292353A (zh) * | 2022-10-09 | 2022-11-04 | 腾讯科技(深圳)有限公司 | 数据查询方法、装置、计算机设备和存储介质 |
CN116561132A (zh) * | 2023-07-06 | 2023-08-08 | 深圳市明源云科技有限公司 | 业务数据查询方法、电子设备及可读存储介质 |
CN116644103A (zh) * | 2023-05-17 | 2023-08-25 | 本原数据(北京)信息技术有限公司 | 数据排序方法和数据排序装置、计算机设备、存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104123374A (zh) * | 2014-07-28 | 2014-10-29 | 北京京东尚科信息技术有限公司 | 分布式数据库中聚合查询的方法及装置 |
CN107798026A (zh) * | 2016-09-05 | 2018-03-13 | 北京京东尚科信息技术有限公司 | 数据查询方法和装置 |
CN111177174A (zh) * | 2018-11-09 | 2020-05-19 | 百度在线网络技术(北京)有限公司 | Sql语句的生成方法、装置、设备和计算机可读存储介质 |
CN111639078A (zh) * | 2020-05-25 | 2020-09-08 | 北京百度网讯科技有限公司 | 数据查询方法、装置、电子设备以及可读存储介质 |
CN111813799A (zh) * | 2020-07-23 | 2020-10-23 | 德清云岫科技有限公司 | 数据库查询语句生成方法、装置、计算机设备和存储介质 |
CN112204541A (zh) * | 2018-03-26 | 2021-01-08 | 迈克菲有限责任公司 | 对分区计算机数据库数据进行聚合的方法、装置和系统 |
CN113032420A (zh) * | 2021-04-23 | 2021-06-25 | 中国建设银行股份有限公司 | 数据查询方法、装置和服务器 |
-
2021
- 2021-07-19 CN CN202110815457.8A patent/CN113468208A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104123374A (zh) * | 2014-07-28 | 2014-10-29 | 北京京东尚科信息技术有限公司 | 分布式数据库中聚合查询的方法及装置 |
CN107798026A (zh) * | 2016-09-05 | 2018-03-13 | 北京京东尚科信息技术有限公司 | 数据查询方法和装置 |
CN112204541A (zh) * | 2018-03-26 | 2021-01-08 | 迈克菲有限责任公司 | 对分区计算机数据库数据进行聚合的方法、装置和系统 |
CN111177174A (zh) * | 2018-11-09 | 2020-05-19 | 百度在线网络技术(北京)有限公司 | Sql语句的生成方法、装置、设备和计算机可读存储介质 |
CN111639078A (zh) * | 2020-05-25 | 2020-09-08 | 北京百度网讯科技有限公司 | 数据查询方法、装置、电子设备以及可读存储介质 |
CN111813799A (zh) * | 2020-07-23 | 2020-10-23 | 德清云岫科技有限公司 | 数据库查询语句生成方法、装置、计算机设备和存储介质 |
CN113032420A (zh) * | 2021-04-23 | 2021-06-25 | 中国建设银行股份有限公司 | 数据查询方法、装置和服务器 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114356965A (zh) * | 2022-03-18 | 2022-04-15 | 杭州湖畔网络技术有限公司 | 动态表单的生成方法、系统、服务器及存储介质 |
CN114356965B (zh) * | 2022-03-18 | 2022-06-14 | 杭州湖畔网络技术有限公司 | 动态表单的生成方法、系统、服务器及存储介质 |
CN114840724A (zh) * | 2022-04-26 | 2022-08-02 | 北京百度网讯科技有限公司 | 一种查询方法、装置、电子设备及存储介质 |
CN114969044A (zh) * | 2022-05-30 | 2022-08-30 | 北京火山引擎科技有限公司 | 一种基于数据湖的物化列创建方法以及数据查询方法 |
CN115292353A (zh) * | 2022-10-09 | 2022-11-04 | 腾讯科技(深圳)有限公司 | 数据查询方法、装置、计算机设备和存储介质 |
CN115292353B (zh) * | 2022-10-09 | 2022-12-27 | 腾讯科技(深圳)有限公司 | 数据查询方法、装置、计算机设备和存储介质 |
CN116644103A (zh) * | 2023-05-17 | 2023-08-25 | 本原数据(北京)信息技术有限公司 | 数据排序方法和数据排序装置、计算机设备、存储介质 |
CN116644103B (zh) * | 2023-05-17 | 2023-11-24 | 本原数据(北京)信息技术有限公司 | 基于数据库的数据排序方法和装置、设备、存储介质 |
CN116561132A (zh) * | 2023-07-06 | 2023-08-08 | 深圳市明源云科技有限公司 | 业务数据查询方法、电子设备及可读存储介质 |
CN116561132B (zh) * | 2023-07-06 | 2023-12-22 | 深圳市明源云科技有限公司 | 业务数据查询方法、电子设备及可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113468208A (zh) | 生成数据查询语句的方法和装置、服务器及存储介质 | |
US11755575B2 (en) | Processing database queries using format conversion | |
US6374252B1 (en) | Modeling of object-oriented database structures, translation to relational database structures, and dynamic searches thereon | |
US7509301B2 (en) | Systems and methods for data processing | |
US20140214897A1 (en) | SYSTEMS AND METHODS FOR ACCESSING A NoSQL DATABASE USING BUSINESS INTELLIGENCE TOOLS | |
US11288290B2 (en) | Building reports | |
CN111767303A (zh) | 一种数据查询方法、装置、服务器及可读存储介质 | |
US10296505B2 (en) | Framework for joining datasets | |
US11294861B2 (en) | Data pruning based on metadata | |
EP2869220B1 (en) | Networked database system | |
EP3832482A1 (en) | Server-side cross-model measure-based filtering | |
US7529730B2 (en) | Method and system for database join disambiguation | |
US10331715B2 (en) | Metadata enrichment with a keyword definition editor | |
US10534761B2 (en) | Significant cleanse change information | |
US10803065B1 (en) | Microcubes | |
US11048695B2 (en) | Context-aware data commenting system | |
KR20040077535A (ko) | 선택된 객체에 관한 정보에 대한 요구를 생성하는 시스템및 방법 | |
JP2020113210A (ja) | 情報処理装置、情報処理方法及びプログラム | |
US20180004808A1 (en) | Meta-facets for semantically-related dimensions | |
US11036749B2 (en) | Query-based determination of data visualization | |
US8386497B2 (en) | Query generation based on hierarchical filters | |
Terakawa et al. | Integrated Usage of Heterogeneous Databases for Novice Users | |
US9471662B2 (en) | Homogeneity evaluation of datasets | |
WO2015083177A1 (en) | File lookup in a file system | |
JP2000187665A (ja) | データベースシステムにおける情報導出方法及び情報導出システム、並びに記憶媒体 |
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 |