【技术实现步骤摘要】
SQL语句的处理方法及装置、电子设备和存储介质
[0001]本说明书一个或多个实施例涉及数据库
,尤其涉及一种SQL语句的处理方法及装置、电子设备和存储介质。
技术介绍
[0002]近年来,近年来随着计算机及数据库的发展,SQL(Structure Query Languge,结构化查询语言)作为一种数据库专用的计算机编程语言得到了广泛使用,成为了最重要也是最常用的关系数据库查询语言。在基于SQL语句进行数据查询时,会消耗计算机应用系统一定的算力,即调用执行引擎执行数据查询。
[0003]在相关技术中,基于较为复杂的SQL语句进行数据查询时,效率较低,影响相关任务的处理效率和用户体验。
技术实现思路
[0004]有鉴于此,本说明书一个或多个实施例提供一种SQL语句的处理方法及装置、电子设备和存储介质。
[0005]为实现上述目的,本说明书一个或多个实施例提供技术方案如下:
[0006]根据本说明书一个或多个实施例的第一方面,提出了一种SQL语句的处理方法,包括:
[000 ...
【技术保护点】
【技术特征摘要】
1.一种SQL语句的处理方法,包括:获取待处理SQL语句,其中,所述待处理SQL语句包括待查询表和针对所述待查询表中每个第一待聚合列的带Distinct聚合函数,所述待查询表包括多个第一待聚合列;根据所述待查询表和序号表生成目标查询表,并生成针对所述目标查询表的子查询,其中,所述序号表包括每个第一待聚合列的序号组成的表格,所述子查询使用group by对每个第一待聚合列进行去重;根据所述子查询对所述待处理SQL语句进行改写,得到目标SQL语句,其中,所述目标SQL语句对每个第一待聚合列进行去重和聚合。2.根据权利要求1所述的SQL语句的处理方法,所述序号表包括每个第一待聚合列的序号联合得到的表格。3.根据权利要求1或2所述的SQL语句的处理方法,所述根据所述待查询表和序号表生成目标查询表,包括:将所述待查询表和所述序号表进行内连接或交叉连接,得到所述目标查询表。4.根据权利要求3所述的SQL语句的处理方法,所述目标查询表包括序号列和多个第二待聚合列,所述多个第二待聚合列与所述多个第一待聚合列一一对应,所述序号列内每个序号作为同行数据的行标号;所述生成针对所述目标查询表的子查询,包括:在所述子查询内添加针对每个第二待聚合列的第一取值函数和以多个第三待聚合列作为关键值的group by,其中,所述第一取值函数用于将行标号为所述第二待聚合列对应的序号的数据保留,并将行标号非所述第二待聚合列对应的序号的数据置空,所述第二待聚合列对应的序号为对应的所述第一待聚合列的序号,所述多个第三待聚合列为多个针对第二待聚合列的第一取值函数的结果。5.根据权利要求4所述的SQL语句的处理方法,所述根据所述子查询,对所述待处理SQL语句进行改写,得到目标SQL语句,包括:在所述目标SQL语句内添加针对所述子查询的结果中每个第三待聚合列的聚合函数。6.根据权利要求5所述的SQL语句的处理方法,所述待查询表包括至少一个第一待查询列,所述待处理SQL语句包括所述至少一个第一待查询列,和以所述至少一个第一待查询列作为关键值的group by;所述目标查询表包括至少一个第二待查询列,其中,所述至少一个第二待查询列与所述至少一个第一待查询列一一对应;所述生成针对所述目标查询表的子查询,还包括:在所述子查询内添加所述至少一个第二待查询列,其中,所述子查询内的group by以所述多个第三待聚合列和所述至少一个第三待查询列作为关键值,其中,所述至少一个第三待查询列与所述至少一个第二待查询列一一对应;所述根据所述子查询对所述待处理SQL语句进行改写,得到目标SQL语句,包括:在所述目标SQL语句内添加所述至少一个第三待查询列和以所述至少一个第三待查询列作为关键值的group by。7.根据权利...
【专利技术属性】
技术研发人员:丁锦成,王国平,朱涛,赵占越,
申请(专利权)人:北京奥星贝斯科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。