CN110020227A - 一种数据排序方法和装置 - Google Patents

一种数据排序方法和装置 Download PDF

Info

Publication number
CN110020227A
CN110020227A CN201711045866.4A CN201711045866A CN110020227A CN 110020227 A CN110020227 A CN 110020227A CN 201711045866 A CN201711045866 A CN 201711045866A CN 110020227 A CN110020227 A CN 110020227A
Authority
CN
China
Prior art keywords
column
data
combination
pending data
ranking results
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
CN201711045866.4A
Other languages
English (en)
Other versions
CN110020227B (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.)
Beijing Gridsum Technology Co Ltd
Original Assignee
Beijing Gridsum Technology 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 Beijing Gridsum Technology Co Ltd filed Critical Beijing Gridsum Technology Co Ltd
Priority to CN201711045866.4A priority Critical patent/CN110020227B/zh
Publication of CN110020227A publication Critical patent/CN110020227A/zh
Application granted granted Critical
Publication of CN110020227B publication Critical patent/CN110020227B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/9038Presentation of query results
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/22Arrangements for sorting or merging computer data on continuous record carriers, e.g. tape, drum, disc
    • G06F7/24Sorting, i.e. extracting data from one or more carriers, rearranging the data in numerical or other ordered sequence, and rerecording the sorted data on the original carrier or on a different carrier or set of carriers sorting methods in general

Landscapes

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

Abstract

本发明公开了一种数据排序方法和装置。查找待排序数据中是否存在能够唯一确定排序结果的列或列的组合,如果查找到唯一确定排序结果的列或列的组合,则根据该列或列的组合对排序数据进行排序,其中,待排序的每条数据中能够唯一确定排序结果的列或列的组合,所包含的内容彼此不同。该方法能够使得待排序的数据,根据能够唯一确定排序结果的列或列的组合进行排序,保证数据排序的唯一性。在相同的场景和条件下,查询上述待排序数据时,每次查询时所展示的数据结果的展示顺序均相同,不会发生每次查询时不同分页显示相同数据,同一分页显示不同数据的情况。

Description

一种数据排序方法和装置
技术领域
本发明涉及大数据分析技术领域,尤其涉及一种数据排序方法和装置及系统。
背景技术
随着大数据时代的到来,各行各业都需要进行数据分析。数据分析时需要进行数据展示。但是,数据展示之前需要对数据进行排序。当数据量较大时,一般会采用分页的形式进行展示,分页展示数据之前需要对数据进行排序。
一般情况下,不同页的数据肯定是不同的,而且两次看到同一页的数据应该是相同的,不能出现某一页数据在前后两次观看的数据是不同的。
尤其对于大数据分析系统,数据分析人员在观看数据时,需要保证相同场景下观看相同页的数据是相同的,不同页的数据是不同的,不能重复。
因此,如何对于数据进行排序是本领域技术人员需要解决的技术问题。
发明内容
为了解决现有技术中存在的以上技术问题,本发明提供一种数据排序方法、装置及系统,能够对无序数据进行排序,保证数据排序的唯一性。
为此,本发明解决技术问题的技术方案是:
一种数据排序方法,包括:
查找待排序数据中能够唯一确定排序结果的列或列的组合,其中,所述列或列的组合满足以下条件:所述待排序数据中各条数据所对应的该列或列的组合中所包含的内容彼此不同;
根据查找到的列或列的组合对所述待排序数据进行排序。
可选的,查找待排序数据中能够唯一确定排序结果的列或列的组合包括:
对于所述待排序数据中的每个列进行逐个查询,直至查找到满足所述条件的单个列;
如果无法查找到满足所述条件的单个列,则对所述待排序数据中的列进行多次组合,每次组合后,都判断当前组合的多个列是否满足所述条件,直至查找到满足所述条件的列的组合。
可选的,在对所述待排序数据中的列进行多次组合之前,所述方法还包括:
对于所述待排序数据中的每个列,根据该列中包含相同内容的行的数量,确定该列的内容差异度;
并且,在对所述待排序数据中的列进行多次组合时,优先将内容差异度最大的列进行组合。
可选的,当用户指定排序规则时,则根据查找到的列或列的组合对所述待排序数据进行排序,具体为:
根据用户指定排序规则确定用户排序规则列;
将所述查找到的列或列的组合放置在所述用户排序规则列之后;
由所述用户排序规则列联合所述查找到的列或列的组合对所述待排序数据进行排序。
可选的,在无法查找到能够唯一确定排序结果的列或列的组合的情况下,所述方法还包括:
创建一列能够唯一确定排序结果的标号列,根据所述标号列对所述待排序数据进行排序。
可选的,当用户指定排序规则时,则根据所述标号列对所述待排序数据进行排序,具体为:
根据用户指定排序规则确定用户排序规则列;
将所述标号列放置在所述用户排序规则列之后;
由所述用户排序规则列联合所述标号列对所述待排序数据进行排序。
可选的,所述创建一列能够唯一确定排序结果的标号列,具体为:
为所述待排序数据中的每条数据添加一列标号,所述标号能够唯一标识该条数据;
所述标号为自然数形成的序列号;
或,
所述标号为利用随机数生成算法得到的字符串序列号。
本发明还提供了一种数据排序装置,包括:
查找单元,用于查找待排序数据中能够唯一确定排序结果的列或列的组合;
第一排序单元,用于所述查找单元能够查找到唯一确定排序结果的列或列的组合,根据查找到的列或列的组合对所述待排序数据进行排序;
第二排序单元,用于所述查找单元查找不到唯一确定排序结果的列或列的组合,则创建一列能够唯一确定排序结果的标号列,根据所述标号列对所述待排序数据进行排序。
本发明还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述数据排序方法。
本申请还提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行上述数据排序方法。
与现有技术相比,本发明至少具有以下优点:
查找待排序数据中是否存在能够唯一确定排序结果的列或列的组合,如果查找到唯一确定排序结果的列或列的组合,则根据该列或列的组合对排序数据进行排序,其中,待排序的每条数据中能够唯一确定排序结果的列或列的组合,所包含的内容彼此不同。该方法能够使得待排序的数据,根据能够唯一确定排序结果的列或列的组合进行排序,保证数据排序的唯一性。在相同的场景和条件下,查询上述待排序数据时,每次查询时所展示的数据结果的展示顺序均相同,不会发生每次查询时不同分页显示相同数据,同一分页显示不同数据的情况。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本申请实施例提供的一种数据排序方法的流程图;
图2为本申请实施例提供的另一种数据排序方法的流程图;
图3为本申请实施例提供的又一种数据排序方法的流程图;
图4为本申请实施例提供的一种数据排序装置的结构图;
图5为本申请实施例提供的另一种数据排序装置的结构图;
图6为本申请实施例提供的又一种数据排序装置的结构图;
图7为本申请实施例提供的再一种数据排序装置的结构图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
由于数据的排列顺序不固定,可能导致在相同的场景和条件下对数据进行查询,每次查询得到的数据显示结果均不同。
例如,有A、B、C三条数据,第一次查询时数据的排序为A、B、C,如果每一页显示一条数据,则第一页显示数据A,第二页显示数据B、第三页显示数据C。由于数据的排列顺序不固定,用户第二次查询时,数据排列顺序发生改变,第一页上显示的数据可能不再为数据A。即由于数据的排列顺序不固定,可能出现多次查询同一分页,该分页上显示不同数据的情况。
再例如,有D、E、F三条数据分三页显示,查询第一页时数据排序是D、E、F,那么第一页展示数据D;由于数据的排列顺序不固定,用户查询第二页时,数据的排列顺序可能更改为E、D、F,那么第二页仍展示数据D。即由于数据的排列顺序不固定,可能在某次查询过程中,出现不同的分页上显示相同数据的情况。
综上所述,在进行数据分析时当数据较多需要分页展示时,由于数据的排列顺序不固定,可能出现某一次查询过程中,不同分页上显示相同数据的情况,也可能出现多次查询相同分页,该分页显示不同数据的情况。
为了解决上述技术问题,本申请提供了一种数据排序方法,查找待排序数据中是否存在能够唯一确定排序结果的列或列的组合,如果查找到唯一确定排序结果的列或列的组合,则根据该列或列的组合对排序数据进行排序,其中,待排序的每条数据中能够唯一确定排序结果的列或列的组合,所包含的内容彼此不同。该方法能够使得待排序的数据,根据能够唯一确定排序结果的列或列的组合进行排序,保证数据排序的唯一性。在相同的场景和条件下,查询上述待排序数据时,每次查询时所展示的数据结果的展示顺序均相同,不会发生每次查询时不同分页显示相同数据,同一分页显示不同数据的情况。
实施例一
参见图1,为本实施例提供的一种数据排序方法的流程图。
该方法包括:
步骤101:查找待排序数据中能够唯一确定排序结果的列或列的组合,其中,所述列或列的组合满足以下条件:所述待排序数据中各条数据所对应的该列或列的组合中所包含的内容彼此不同。
步骤102:根据查找到的列或列的组合对所述待排序数据进行排序。
需要说明的是,待排序数据至少包括一列,但是由于数据中一般需要包括该数据的属性、指标等参数,因此数据一般包括至少两列,其中不同的列可以分别表示数据的属性、指标等参数,其中,属性可以表示数据的维度,数据的维度可以为一个也可以为多个。
如表1所示,一条数据包括三列,第一列表示该数据属性的第一维度,第二列表示该数据属性的第二维度,第三列表示该数据的指标。即在表1所示的数据中,省份为该数据属性的第一维度,城市为该数据属性的第二维度,人口为数据的指标。
表1
省份 城市 人口
河北 石家庄 1100万
河北 保定 1000万
河南 郑州 900万
查找待排序数据中是否存在能够唯一确定排序结果的列或列的组合,若在待排序数据中查找到能够唯一确定排序结果的列或列的组合,即可根据该列或列的组合对待排序数据进行排序。
需要说明的是,待排序数据中各条数据所对应的该列或列的组合所包含的内容彼此不同。即能够唯一确定排序结果的列或列的组合,指的是该列或列的组合,可以作为数据的唯一标识,根据该列或列的组合的信息在所有待排序数据中,能够确定出唯一一个与该列或列的组合的信息对应的数据。相应地,根据该列或列的组合对待排序数据进行排序,可以得到一个唯一确定的排列顺序。
若待排序数据中存在能够唯一确定排序结果的列或列的组合,根据该列或列的组合对待排序数据进行排序,主要分为下面两种情况:
第一种是根据能够唯一确定排序结果的列,对待排序数据进行排序;
第二种是根据唯一能够确定排序结果的列的组合,对待排序数据进行排序。
需要说明的是,列的组合可以由任意一列以上的列组合得到,在此对列的组合中所包括的列的个数不做任何限定。
在查找待排序数据中能够唯一确定排序结果的列或列的组合时,可以对待排序数据中的每个列进行逐个查询,直至查找到满足条件的单个列,即直至查找到能够唯一确定排序结果的单个列。
如果无法查找到满足条件的单个列,则对待排序数据中的列进行多次组合,每次组合后,判断当前组合的多个列是否满足条件,直至查找到满足条件的列的组合。
即如果无法查找能够唯一确定排序结果的单个列,则将待排序数据中的列进行组合,并对组合得到的列的组合进行判断,判断该列的组合是否能够唯一确定排序结果,若该列的组合能够唯一确定排序结果,则根据该列的组合对待排序数据进行排序。若组合得到的列的组合不能够唯一确定排序结果,则重新对各列进行组合,直至列的组合能够唯一确定待排序数据的排序结果。
为了便于理解方案,现结合上述查找待排序数据中能够唯一确定排序结果的列或列的组合的方法,分别对上述两种对待排序数据进行排序的情况进行举例说明。
首先,对第一种情况进行举例说明:
如表2所示,为某超市的待排序数据,该待排序数据中包括价格列、商品类别列、厂家列及月销量列。
表2
价格 商品类别 厂家 月销量
3元 矿泉水 A 500
5元 饼干 B 350
8元 巧克力 C 300
3元 薯片 B 350
如表2所示,由于矿泉水与薯片的价格相同,饼干和薯片的厂家相同,饼干和薯片的月销量也相同,因此,价格列、厂家列和月销量列均不能作为待排序数据的唯一标识,即价格列、厂家列和月销量列均不能唯一确定出待排序数据的排序结果。
而各待排序数据的商品类别列均不同,即商品类别列可以作为待排序数据的唯一标识,若已知商品类别信息,即能够在待排序数据中确定唯一一个数据。因此,该商品类别列可作为唯一确定排序结果的列,根据商品类别列对上述待排序数据进行排序。
具体排列时,如表3所示,用户可以根据实际需要,自定义商品类别列中商品类别信息的排列顺序,进而,根据该商品类别信息的排列顺序排列各待排序数据。
表3
商品类别 价格 厂家 月销量
矿泉水 3元 A 500
饼干 5元 B 350
巧克力 8元 C 300
薯片 3元 B 350
接下来,对第二种情况进行举例说明:
如表4所示,为某公司员工在某一天的工作计划数据,该工作计划数据为待排序数据。
表4
时间 员工 工作
8:00 员工A 项目a
8:00 员工B 项目a
9:00 员工C 项目a
10:00 员工A 项目a
11:00 员工B 项目c
11:00 员工C 项目b
如表4所示,上述待排序数据中的时间列中存在相同的时间,员工列中存在相同的员工,工作列中存在相同的项目,可见,上述待排序数据中不存在能够唯一确定排序结果的列。
现将待排序数据中的各列两两进行组合,可分为以下三种组合:时间列与员工列组合、时间列与工作列组合、员工列与工作列进行组合。
若将时间列与员工列进行组合,可发现,该员工列与时间列的组合可作为待排序数据唯一的标识,根据某一数据中的员工信息和时间信息,即可唯一确定出该数据中的工作信息。例如,若已知工作时间为8:00,员工为员工A,则可以相应地确定员工A在8:00的工作信息为处理项目a。
若将时间列与工作列进行组合,可发现,该时间列与工作列的组合无法作为待排序数据的唯一标识,根据某一数据中的时间信息和工作信息,无法唯一确定数据中的员工信息,也就无法唯一确定该数据。例如,若已知工作时间为8:00,工作为项目a,由于上述数据中记录的在8:00处理项目a的员工有员工A和员工B,因此,无法根据时间信息和工作信息唯一确定员工信息,也就无法具体确定该数据。
若将员工列与工作列进行组合,可发现,该员工列和工作列的组合也无法作为待排序数据唯一的标识,根据某一数据中的员工信息和工作信息,无法唯一数据中的时间信息,也就无法唯一确定该数据。例如,若已知工作员工为员工A,工作项目为项目a,由于上述数据中记录的员工A处理项目a的时间为8:00和10:00,即无法根据员工信息和工作信息唯一确定时间信息,也就无法具体确定该数据。
通过上述分析可知,时间列与员工列的组合可唯一确定排序结果,进而,可根据该列的组合对待排序数据进行排序。
当无法查找到能够唯一确定排序结果的列,需要对待排序数据中的列进行组合时,还可以在对各列进行组合之前,根据各列中包含相同内容的行的数量,确定各列的内容差异度。
在对待排序数据中的列进行多次组合时,优先将内容差异度最大的列进行组合。
通过根据各列所包含相同内容的数量,确定各列的内容差异度,进而根据内容差异度,选择优先将内容差异度大的列进行组合。可以较快找到能够唯一确定排序结果的列的组合,进而,提高对待排序数据进行排序的效率。
本实施例提供的数据排序方法,查找待排序数据中是否存在能够唯一确定排序结果的列或列的组合,如果查找到唯一确定排序结果的列或列的组合,则根据该列或列的组合对排序数据进行排序,其中,待排序的每条数据中能够唯一确定排序结果的列或列的组合,所包含的内容彼此不同。该方法能够使得待排序的数据,根据能够唯一确定排序结果的列或列的组合进行排序,保证数据排序的唯一性。在相同的场景和条件下,查询上述待排序数据时,每次查询时所展示的数据结果的展示顺序均相同,不会发生每次查询时不同分页显示相同数据,同一分页显示不同数据的情况。
若在待排序数据中查找不到能够唯一确定排序结果的列或列的组合,本申请实施例提供的方法还可以创建一列能够唯一确定排序结果的标号列,根据标号列对待排序数据进行排序。
在一些情况下,数据中的列以及列的组合均不能唯一确定数据的排序结果,此时,为了对待排序数据排序,需要创建一列新的标号列,该标号列能够唯一确定待排序数据的排序结果,进而,根据该标号列对待排序数据进行排序。
需要说明的是,标号列中的标号可以为自然数形成的序列号,例如,可将1,2,3等自然数序列号作为标号列中的标号;也可以为利用随机数生成算法得到的字符串序列号,例如,采用随机数生成算法可得到全局唯一标识符(GUID,Globally Unique Identifier),该随机数生成算法基于时间因子推进原理,不同时刻生成的字符串不同,由于生成的字符串均不相同,因此,可将该字符串作为标号列中的标号,用于作为数据的唯一标识,进而,根据该标号列可唯一确定排序结果。
为了便于理解,现针对上述情况进行举例说明:
如表5所示,为某高校的学生信息数据,表5中的学生信息数据为待排序数据。
表5
姓名 性别 年龄 专业
张三 21 软件工程
李四 20 土木工程
王强 20 网络工程
王强 20 网络工程
如表5所示,上述待排序数据的姓名列、性别列、年龄列以及专业列中,均存在信息相同的情况,因此,上述待排序数据中的各列均不能够唯一确定待排序数据的排序结果。
观察表5中显示的数据可以发现,表5中第4行和第5行的数据信息完全相同,即第4行和第5行的数据中,姓名列、性别列、年龄列和专业列中的信息均完全相同。由于待排序数据中存在完全相同的数据,即使将各列进行组合,所得到的各种列的组合,也均无法作为数据的唯一标识,进而,各种列的组合均不能够为待排序数据确定一个唯一的排序结果。
因此,需要创建一列能够唯一确定排序结果的标号列,根据该标号列对待排序数据进行排序。如表6所示,可以创建一列自然数列,为各个待排序数据分配不同的自然数标号,该自然数标号可以作为数据的唯一标识,标识各个待排序数据。相应地,该自然数列作为标号列,能够唯一确定上述待排序数据的排序结果,可根据该标号列对待排序学生信息数据进行排序。
表6
标号 姓名 性别 年龄 专业
1 张三 21 软件工程
2 李四 20 土木工程
3 王强 20 网络工程
4 王强 20 网络工程
本实施例提供了一种数据排序方法,如果无法查找到唯一确定排序结果的列或列的组合,则创建一列能够唯一确定排序结果的标号列,进而,根据该标号列对待排序的数据进行排序。该方法能够使得待排序的数据,根据能够唯一确定排序结果的标号列进行排序,保证数据排序的唯一性。在相同的场景和条件下,查询上述待排序数据时,每次查询时所展示的数据结果的展示顺序均相同,不会发生每次查询时不同分页显示相同数据,同一分页显示不同数据的情况。
在一些情况下,用户需要指定根据待排序数据中某一列的排序规则,对待排序数据进行排序。但是很多时候,用户所指定的待排序数据中某一列的排序规则,并不能够唯一确定待排序数据的排序。此时,需要将用户指定的待排序数据中某一列的排序规则,与能够唯一确定排序结果的列或列的组合结合起来,对待排序数据进行排序,或者,将用户指定的待排序数据中的某一列,与唯一能够确定排序结果的标号列结合起来,对待排序数据进行排序。
首先,具体介绍将用户指定的待排序数据中某一列的排序规则,与能够唯一确定排序结果的列或列的组合结合起来,对待排序数据进行排序的方法。
实施例二
参照图2,为本实施例提供了另一种数据排序方法的流程图。
该方法包括:
步骤201:根据用户指定排序规则确定用户排序规则列。
步骤202:将查找到的列或列的组合放置在所述用户排序规则列之后。
步骤203:由用户排序规则列联合查找到的列或列的组合对待排序数据进行排序。
用户指定排序规则,根据该排序规则,在待排序数据中查找与该排序规则对应的列,将该列确定为用户排序规则列。
根据实施例一步骤102介绍的方法,查找待排序数据中是否存在能够唯一确定排序结果的列或列的组合,若查找到能够唯一确定待排序数据排序结果的列或列的组合,将该列或列的组合放置在用户排序规则列之后。
需要说明的是,用户排序规则列可能为能够唯一确定待排序数据排序结果的列,若该用户排序规则列为该能够唯一确定排序结果的列,则直接根据该用户指定的排序规则,对待排序数据进行唯一确定地排序。
当然,用户排序规则列也可能不能够唯一确定待排序数据的排序结果,此时,需要将能够唯一确定待排序数据排序结果的列或列的组合,放置于用户排序规则列之后,将用户排序规则列,与能够唯一确定排序结果的列或列的组合联合起来,对待排序数据进行排序。
为了便于理解,现对本实施例提供的数据排序方法进行举例说明:
如实施例一中的表2所示,为某超市提供的待排序数据,该待排序数据中包括价格列、商品类别列、厂家列及月销量列。现用户需要按照月销量从高到低的顺序对上述待排序数据进行排序。因此,将月销量列作为用户排序规则列,对待排序数据进行排序。
通过观察表2可发现,饼干和薯片的月销量均为350,若根据月销量列对待排序数据进行排序,当月销量为350时,无法具体确定该月销量为饼干的月销量还是薯片的月销量,即该月销量列不能够唯一确定待排序数据的排序结果。
按照实施例一中步骤102的方法,可确定出商品类别列能够唯一确定待排序数据的排序结果,将该能够唯一确定待排序数据的排序结果的列,放置于用户规则列之后,即将商品类别列放置于月销量列之后。如表7所示。
表7
月销量 商品类别 价格 厂家
500 矿泉水 3元 A
350 饼干 5元 B
350 薯片 3元 B
300 巧克力 8元 C
如表7所示,数据的第一列为根据用户指定的排序规则确定的用户排序规则列,即月销量列,月销量按照用户指定的排序规则,按照从高到低的顺序进行排序。数据的第二列为能够唯一确定排序结果的列,即商品类别列,当出现月销量相同的情况时,可根据商品类别对数据进行排序。
本实施例提供的数据排序方法,对待排序数据进行排序时,可以根据用户指定的排序规则对待排序数据进行排序,若用户指定的排序规则不能够唯一确定待排序数据的排序,则将查找到的能够唯一确定排序结果的列或列的组合,与根据用户指定的排序规则确定出的用户排序规则列联合起来,对待排序数据进行排序。该方法能够在满足用户指定的排序规则的条件下,结合唯一确定排序结果的列或列的组合,实现对待排序数据进行唯一确定的排序。
接下来,具体介绍将用户指定的待排序数据中的某一列,与唯一能够确定排序结果的标号列结合起来,对待排序数据进行排序的方法。
实施例三
参见图3,为本实施例提供的又一种数据排序方法的流程图。该方法包括:
步骤301:根据用户指定排序规则确定用户排序规则列。
步骤302:将标号列放置在用户排序规则列之后。
步骤303:由用户排序规则列联合标号列对待排序数据进行排序。
用户指定排序规则,根据该排序规则,在待排序数据中查找与该排序规则对应的列,将该列确定为用户排序规则列。
根据实施例一步骤103介绍的方法,查找待排序数据中是否存在能够唯一确定排序结果的列或列的组合,若待排序数据中不存在能够唯一确定排序结果的列或列的组合,则创建一列能够唯一确定排序结果的标号列。将该标号列放置于用户排序规则列之后。
用户规则列联合能够唯一确定排序结果的标号列,对待排序数据进行排序。具体地,先按照用户指定的规则,对待排序数据进行排序,由于用户规则列不能够唯一确定排序结果,则将用户规则列与能够唯一确定排序结果的标号列联合起来,对待排序数据进行排序。
为了便于理解,现对本实施例提供的数据排序方法进行举例说明:
如实施例一中的表6所示,创建了一列能够唯一确定排序结果的标号列,并根据标号列对待排序的学生信息数据进行了排序。
现用户指定按照学生信息数据中姓名的首字母,对上述学生信息数据进行排序,则将姓名列确定为用户排序规则列,并将标号列放置在用户排序结果列之后。由于姓名“王强”在姓名列中出现了两次,因此,仅根据姓名“王强”不能唯一确定出一个数据。
表8
姓名 标号 性别 年龄 专业
李四 2 20 土木工程
王强 3 20 网络工程
王强 4 20 网络工程
张三 1 21 软件工程
如表8所示,数据的第一列为根据用户指定的排序规则确定的用户排序规则列,即姓名列,姓名按照用户指定的排序规则,按照首字母的顺序进行排序。数据的第二列为能够唯一确定排序结果的标号列,当出现姓名相同的情况时,可根据标号列中的标号对数据进行排序。
本实施例提供的数据排序方法,对待排序数据进行排序时,可以根据用户指定的排序规则对待排序数据进行排序,若用户指定的排序规则不能够唯一确定待排序数据的排序,则将能够唯一确定排序结果的标号列,与根据用户指定的排序规则确定出的用户排序规则列联合起来,对待排序数据进行排序。该方法能够在满足用户指定的排序规则的条件下,结合唯一确定排序结果的标号列,实现对待排序数据进行唯一确定的排序。
实施例四
参见图4,为本实施例提供的一种数据排序装置。该装置包括:
查找单元401,用于查找待排序数据中能够唯一确定排序结果的列或列的组合。
第一排序单元402,用于所述查找单元能够查找到唯一确定排序结果的列或列的组合,根据查找到的列或列的组合对所述待排序数据进行排序。
第二排序单元403,用于所述查找单元查找不到唯一确定排序结果的列或列的组合,则创建一列能够唯一确定排序结果的标号列,根据所述标号列对所述待排序数据进行排序。
参见图5,第二排序单元403包括列添加子单元。
列添加子单元501,用于为所述待排序数据中的每条数据添加一列标号,所述标号能够唯一标识该条数据;
所述标号为自然数形成的序列号;或,所述标号为利用随机数生成算法得到的字符串序列号。
本实施例提供了一种数据排序装置,查找待排序数据中是否存在能够唯一确定排序结果的列或列的组合,如果查找到唯一确定排序结果的列或列的组合,则根据该列或列的组合对排序数据进行排序,如果未查找到唯一确定排序结果的列或列的组合,则创建一列能够唯一确定排序结果的标号列,进而,根据该标号列对待排序的数据进行排序。该方法能够使得待排序的数据,根据能够唯一确定排序结果的列或列的组合进行排序,保证数据排序的唯一性。在相同的场景和条件下,查询上述待排序数据时,每次查询时所展示的数据结果的展示顺序均相同,不会发生每次查询时不同分页显示相同数据,同一分页显示不同数据的情况。
实施例五
参见图6,为本实施例提供的另一种数据排序装置,该装置中的查找单元与第二排序单元均与实施例四中的查找单元与第二排序单元相同。该装置中的第一排序单元具体包括:
第一确定子单元601,用于根据用户指定排序规则确定用户排序规则列。
第一排列子单元602,用于将所述查找到的列或列的组合放置在所述用户排序规则列之后。
第一排序子单元603,用于由所述用户排序规则列联合所述查找到的列或列的组合对所述待排序数据进行排序。
本实施例提供的数据排序装置,对待排序数据进行排序时,可以根据用户指定的排序规则对待排序数据进行排序,若用户指定的排序规则不能够唯一确定待排序数据的排序,则将查找到的能够唯一确定排序结果的列或列的组合,与根据用户指定的排序规则确定出的用户排序规则列联合起来,对待排序数据进行排序。该方法能够在满足用户指定的排序规则的条件下,结合唯一确定排序结果的列或列的组合,实现对待排序数据进行唯一确定的排序。
实施例六
参见图7,为本实施例提供的又一种数据排序装置,该装置中的查找单元与第一排序单元均与实施例四中的查找单元与第一排序单元相同。该装置中的第二排序单元具体包括:
第二确定子单元701,用于根据用户指定排序规则确定用户排序规则列。
第二排列子单元702,用于将所述标号列放置在所述用户排序规则列之后。
第二排序子单元703,用于由所述用户排序规则列联合所述标号列对所述待排序数据进行排序。
本实施例提供的数据排序装置,对待排序数据进行排序时,可以根据用户指定的排序规则对待排序数据进行排序,若用户指定的排序规则不能够唯一确定待排序数据的排序,则将能够唯一确定排序结果的标号列,与根据用户指定的排序规则确定出的用户排序规则列联合起来,对待排序数据进行排序。该方法能够在满足用户指定的排序规则的条件下,结合唯一确定排序结果的标号列,实现对待排序数据进行唯一确定的排序。
所述数据排序装置包括处理器和存储器,上述查找单元、第一排序单元和第二排序单元等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来对无序数据进行排序,保证数据排序的唯一性。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
本发明实施例提供了一种存储介质,其上存储有程序,该程序被处理器执行时实现所述数据排序方法。
本发明实施例提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行所述数据排序方法。
本发明实施例提供了一种设备,设备包括处理器、存储器及存储在存储器上并可在处理器上运行的程序,处理器执行程序时实现以下步骤:
查找待排序数据中能够唯一确定排序结果的列或列的组合;
如果能够查找到唯一确定排序结果的列或列的组合,则根据查找到的列或列的组合对所述待排序数据进行排序;
如果查找不到唯一确定排序结果的列或列的组合,则创建一列能够唯一确定排序结果的标号列,根据所述标号列对所述待排序数据进行排序。
根据用户指定排序规则确定用户排序规则列;
将所述查找到的列或列的组合放置在所述用户排序规则列之后;
由所述用户排序规则列联合所述查找到的列或列的组合对所述待排序数据进行排序。
根据用户指定排序规则确定用户排序规则列;
将所述标号列放置在所述用户排序规则列之后;
由所述用户排序规则列联合所述标号列对所述待排序数据进行排序。
为所述待排序数据中的每条数据添加一列标号,所述标号能够唯一标识该条数据;
所述标号为自然数形成的序列号;或,
所述标号为利用随机数生成算法得到的字符串序列号。
所述用户排序规则列为一列或至少两列的组合。
本文中的设备可以是服务器、PC、PAD、手机等。
本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序:
查找待排序数据中能够唯一确定排序结果的列或列的组合;
如果能够查找到唯一确定排序结果的列或列的组合,则根据查找到的列或列的组合对所述待排序数据进行排序;
如果查找不到唯一确定排序结果的列或列的组合,则创建一列能够唯一确定排序结果的标号列,根据所述标号列对所述待排序数据进行排序。
根据用户指定排序结果确定用户排序结果列;
将所述查找到的列或列的组合放置在所述用户排序结果列之后;
由所述用户排序结果列联合所述查找到的列或列的组合对所述待排序数据进行排序。
根据用户指定排序结果确定用户排序结果列;
将所述标号列放置在所述用户排序结果列之后;
由所述用户排序结果列联合所述标号列对所述待排序数据进行排序。
为所述待排序数据中的每条数据添加一列标号,所述标号能够唯一标识该条数据;
所述标号为自然数形成的序列号;或,
所述标号为利用随机数生成算法得到的字符串序列号。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (10)

1.一种数据排序方法,其特征在于,包括:
查找待排序数据中能够唯一确定排序结果的列或列的组合,其中,所述列或列的组合满足以下条件:所述待排序数据中各条数据所对应的该列或列的组合中所包含的内容彼此不同;
根据查找到的列或列的组合对所述待排序数据进行排序。
2.根据权利要求1所述的数据排序方法,其特征在于,查找待排序数据中能够唯一确定排序结果的列或列的组合包括:
对于所述待排序数据中的每个列进行逐个查询,直至查找到满足所述条件的单个列;
如果无法查找到满足所述条件的单个列,则对所述待排序数据中的列进行多次组合,每次组合后,都判断当前组合的多个列是否满足所述条件,直至查找到满足所述条件的列的组合。
3.根据权利要求2所述的数据排序方法,其特征在于,在对所述待排序数据中的列进行多次组合之前,所述方法还包括:
对于所述待排序数据中的每个列,根据该列中包含相同内容的行的数量,确定该列的内容差异度;
并且,在对所述待排序数据中的列进行多次组合时,优先将内容差异度最大的列进行组合。
4.根据权利要求1所述的数据排序方法,其特征在于,当用户指定排序规则时,则根据查找到的列或列的组合对所述待排序数据进行排序,具体为:
根据用户指定排序规则确定用户排序规则列;
将所述查找到的列或列的组合放置在所述用户排序规则列之后;
由所述用户排序规则列联合所述查找到的列或列的组合对所述待排序数据进行排序。
5.根据权利要求1所述的数据排序方法,其特征在于,在无法查找到能够唯一确定排序结果的列或列的组合的情况下,所述方法还包括:
创建一列能够唯一确定排序结果的标号列,根据所述标号列对所述待排序数据进行排序。
6.根据权利要求5所述的数据排序方法,其特征在于,当用户指定排序规则时,则根据所述标号列对所述待排序数据进行排序,具体为:
根据用户指定排序规则确定用户排序规则列;
将所述标号列放置在所述用户排序规则列之后;
由所述用户排序规则列联合所述标号列对所述待排序数据进行排序。
7.根据权利要求5所述的数据排序方法,其特征在于,所述创建一列能够唯一确定排序结果的标号列,具体为:
为所述待排序数据中的每条数据添加一列标号,所述标号能够唯一标识该条数据;
所述标号为自然数形成的序列号;
或,
所述标号为利用随机数生成算法得到的字符串序列号。
8.一种数据排序装置,其特征在于,包括:
查找单元,用于查找待排序数据中能够唯一确定排序结果的列或列的组合;
第一排序单元,用于所述查找单元能够查找到唯一确定排序结果的列或列的组合,根据查找到的列或列的组合对所述待排序数据进行排序;
第二排序单元,用于所述查找单元查找不到唯一确定排序结果的列或列的组合,则创建一列能够唯一确定排序结果的标号列,根据所述标号列对所述待排序数据进行排序。
9.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,该程序被处理器执行时实现如权利要求1至7中任一项所述的数据排序方法。
10.一种处理器,其特征在于,所述处理器用于运行程序,其中,所述程序运行时执行权利要求1至7中任意一项所述的数据排序方法。
CN201711045866.4A 2017-10-31 2017-10-31 一种数据排序方法和装置 Active CN110020227B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711045866.4A CN110020227B (zh) 2017-10-31 2017-10-31 一种数据排序方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711045866.4A CN110020227B (zh) 2017-10-31 2017-10-31 一种数据排序方法和装置

Publications (2)

Publication Number Publication Date
CN110020227A true CN110020227A (zh) 2019-07-16
CN110020227B CN110020227B (zh) 2021-10-15

Family

ID=67186717

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711045866.4A Active CN110020227B (zh) 2017-10-31 2017-10-31 一种数据排序方法和装置

Country Status (1)

Country Link
CN (1) CN110020227B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023124217A1 (zh) * 2021-12-28 2023-07-06 上海右云信息技术有限公司 一种获取多列数据的综合排列数据的方法与设备

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101136035A (zh) * 2007-10-15 2008-03-05 金蝶软件(中国)有限公司 不同属性字段的排序方法及系统
CN101442591A (zh) * 2008-12-03 2009-05-27 中兴通讯股份有限公司 一种性能业务模型差异自检与升级的方法及系统
CN102170650A (zh) * 2011-04-29 2011-08-31 武汉虹信通信技术有限责任公司 信令或事件的显示系统及其过滤和恢复方法
CN103186646A (zh) * 2011-12-31 2013-07-03 联想(北京)有限公司 一种面向应用程序的显示方法、设备和系统
CN103186560A (zh) * 2011-12-28 2013-07-03 金蝶软件(中国)有限公司 一种数据排序方法以及相关装置
CN103425672A (zh) * 2012-05-17 2013-12-04 阿里巴巴集团控股有限公司 一种数据库索引的建立方法及装置
CN104424339A (zh) * 2013-09-11 2015-03-18 腾讯科技(深圳)有限公司 数据分析的方法、装置及系统
WO2015193771A1 (en) * 2014-06-16 2015-12-23 International Business Machines Corporation Flash optimized columnar data layout and data access algorithms for big data query engines
CN105760504A (zh) * 2016-02-23 2016-07-13 中国银联股份有限公司 基于浏览器的资源检索方法
CN106168960A (zh) * 2016-06-30 2016-11-30 努比亚技术有限公司 一种数据资源的调整装置及其调整方法
CN106547755A (zh) * 2015-09-17 2017-03-29 北京国双科技有限公司 一种基于片键的数据处理方法及装置
CN107169017A (zh) * 2017-03-31 2017-09-15 北京奇艺世纪科技有限公司 一种数据格式化存储、格式化数据读取方法及装置

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101136035A (zh) * 2007-10-15 2008-03-05 金蝶软件(中国)有限公司 不同属性字段的排序方法及系统
CN101442591A (zh) * 2008-12-03 2009-05-27 中兴通讯股份有限公司 一种性能业务模型差异自检与升级的方法及系统
CN102170650A (zh) * 2011-04-29 2011-08-31 武汉虹信通信技术有限责任公司 信令或事件的显示系统及其过滤和恢复方法
CN103186560A (zh) * 2011-12-28 2013-07-03 金蝶软件(中国)有限公司 一种数据排序方法以及相关装置
CN103186646A (zh) * 2011-12-31 2013-07-03 联想(北京)有限公司 一种面向应用程序的显示方法、设备和系统
CN103425672A (zh) * 2012-05-17 2013-12-04 阿里巴巴集团控股有限公司 一种数据库索引的建立方法及装置
CN104424339A (zh) * 2013-09-11 2015-03-18 腾讯科技(深圳)有限公司 数据分析的方法、装置及系统
WO2015193771A1 (en) * 2014-06-16 2015-12-23 International Business Machines Corporation Flash optimized columnar data layout and data access algorithms for big data query engines
CN106547755A (zh) * 2015-09-17 2017-03-29 北京国双科技有限公司 一种基于片键的数据处理方法及装置
CN105760504A (zh) * 2016-02-23 2016-07-13 中国银联股份有限公司 基于浏览器的资源检索方法
CN106168960A (zh) * 2016-06-30 2016-11-30 努比亚技术有限公司 一种数据资源的调整装置及其调整方法
CN107169017A (zh) * 2017-03-31 2017-09-15 北京奇艺世纪科技有限公司 一种数据格式化存储、格式化数据读取方法及装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
WXWZY738: ""MYSQL单列索引和组合索引的区别介绍"", 《HTTPS://BLOG.CSDN.NET/WXWZY738/ARTICLE/DETAILS/17590305》 *
周光明 等: ""不确定多属性决策中区间数的一种新排序法"", 《系统工程》 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023124217A1 (zh) * 2021-12-28 2023-07-06 上海右云信息技术有限公司 一种获取多列数据的综合排列数据的方法与设备

Also Published As

Publication number Publication date
CN110020227B (zh) 2021-10-15

Similar Documents

Publication Publication Date Title
Cechinel et al. Mapping learning analytics initiatives in Latin America
CN110532451A (zh) 针对政策文本的检索方法和装置、存储介质、电子装置
Yin et al. Due-date assignment and single-machine scheduling with generalised position-dependent deteriorating jobs and deteriorating multi-maintenance activities
CN105335409A (zh) 一种目标用户的确定方法、设备和网络服务器
CN106484766B (zh) 基于人工智能的搜索方法和装置
JP7399889B2 (ja) 暗号化された一致インデックスについての完全一致およびファジーマッチングでの重複の検出
CN108268586A (zh) 跨多数据表的数据处理方法、装置、介质和计算设备
CN110069676A (zh) 关键词推荐方法和装置
CN110119401A (zh) 用户画像的处理方法、装置、服务器及存储介质
Bhamra et al. Is leagile still relevant? A review and research opportunities
CN104123285B (zh) 搜索结果的导航方法及装置
CN107729330A (zh) 获取数据集的方法和装置
CN110046303A (zh) 一种基于需求匹配平台实现的信息推荐方法及装置
US20130304539A1 (en) User recommendation method and device
CN109598171A (zh) 一种基于二维码的数据处理方法、装置及系统
CN107368501B (zh) 数据的处理方法及装置
Kuźmicz Benchmarking in omni-channel logistics
Jin et al. Cryptoeconomics: Data application for token sales analysis
CN109101512B (zh) 法律数据库的构建方法、法律数据查询方法及装置
CN107451204A (zh) 一种数据查询方法、装置及设备
CN107391533A (zh) 生成图形数据库查询结果的方法及装置
CN110020227A (zh) 一种数据排序方法和装置
GB2526910A (en) Report generation system and method
CN110069453A (zh) 运维数据处理方法和装置
Singh Impact of technology in library services

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
CB02 Change of applicant information

Address after: 100080 No. 401, 4th Floor, Haitai Building, 229 North Fourth Ring Road, Haidian District, Beijing

Applicant after: Beijing Guoshuang Technology Co.,Ltd.

Address before: 100086 Beijing city Haidian District Shuangyushu Area No. 76 Zhichun Road cuigongfandian 8 layer A

Applicant before: Beijing Guoshuang Technology Co.,Ltd.

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant