本發(fā)明涉及大數(shù)據(jù),尤其涉及一種查詢(xún)方法及裝置。
背景技術(shù):
1、在對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行分析和統(tǒng)計(jì)時(shí),可以使用包含有聚集函數(shù)的查詢(xún)語(yǔ)句。其中,聚集函數(shù)用于根據(jù)多行輸入數(shù)據(jù)計(jì)算出一個(gè)結(jié)果,常見(jiàn)的聚集函數(shù),如sum()函數(shù),count()函數(shù),avg()函數(shù)等。
2、若一條查詢(xún)語(yǔ)句中包括多個(gè)聚集函數(shù),則數(shù)據(jù)庫(kù)接收到該查詢(xún)語(yǔ)句后,遍歷查詢(xún)語(yǔ)句對(duì)應(yīng)的數(shù)據(jù)表中的數(shù)據(jù),確定每個(gè)聚集函數(shù)的計(jì)算結(jié)果,并輸出每個(gè)聚集函數(shù)的計(jì)算結(jié)果作為該查詢(xún)語(yǔ)句的結(jié)果。
3、在查詢(xún)語(yǔ)句存在多個(gè)聚集函數(shù)的情況下,在確定每個(gè)聚集函數(shù)的結(jié)果時(shí),容易出現(xiàn)重復(fù)計(jì)算的問(wèn)題,如何減少重復(fù)計(jì)算是目前亟需解決的技術(shù)問(wèn)題。
技術(shù)實(shí)現(xiàn)思路
1、本申請(qǐng)?zhí)峁┮环N查詢(xún)方法及裝置,用于解決在查詢(xún)語(yǔ)句中存在多個(gè)聚集函數(shù)的情況下,出現(xiàn)的重復(fù)計(jì)算問(wèn)題。
2、第一方面,本申請(qǐng)實(shí)施例提供了一種查詢(xún)方法,該方法可以由計(jì)算機(jī)裝置的處理器執(zhí)行。該方法具體包括以下步驟:處理器接收用戶(hù)輸入的第一查詢(xún)語(yǔ)句,其中,第一查詢(xún)語(yǔ)句包括m個(gè)第一聚集函數(shù),m為正整數(shù),每個(gè)第一聚集函數(shù)與至少一個(gè)基本計(jì)算單元相對(duì)應(yīng);處理器對(duì)m個(gè)第一聚集函數(shù)分別對(duì)應(yīng)的基本計(jì)算單元進(jìn)行遍歷,并計(jì)算首次遍歷到的n個(gè)基本計(jì)算單元的結(jié)果,其中,n為正整數(shù);處理器根據(jù)n個(gè)基本計(jì)算單元的結(jié)果,確定m個(gè)第一聚集函數(shù)分別對(duì)應(yīng)的計(jì)算結(jié)果,再根據(jù)m個(gè)第一聚集函數(shù)分別對(duì)應(yīng)的計(jì)算結(jié)果,輸出第一查詢(xún)語(yǔ)句的執(zhí)行結(jié)果。
3、通過(guò)上述方法,在m個(gè)第一聚集函數(shù)對(duì)應(yīng)的基本計(jì)算單元存在相同的情況下,只計(jì)算首次遍歷到的n個(gè)基本計(jì)算單元的結(jié)果,可以有效解決重復(fù)計(jì)算基本計(jì)算單元的問(wèn)題,提高查詢(xún)效率。
4、在一種可能的設(shè)計(jì)中,處理器對(duì)m個(gè)第一聚集函數(shù)分別對(duì)應(yīng)的基本計(jì)算單元進(jìn)行遍歷之前,還可以包括:處理器根據(jù)第一查詢(xún)語(yǔ)句確定第二查詢(xún)語(yǔ)句,第二查詢(xún)語(yǔ)句包括第二聚集函數(shù),其中,第二聚集函數(shù)包括分別與m個(gè)第一聚集函數(shù)對(duì)應(yīng)的m個(gè)表達(dá)式和m個(gè)函數(shù)符號(hào)。處理器再根據(jù)m個(gè)表達(dá)式和m個(gè)函數(shù)符號(hào),確定m個(gè)第一聚集函數(shù)分別對(duì)應(yīng)的基本計(jì)算單元。通過(guò)該設(shè)計(jì),通過(guò)第二查詢(xún)語(yǔ)句中的第二聚集函數(shù),可以便捷地確定每個(gè)第一聚集函數(shù)對(duì)應(yīng)的基本計(jì)算單元。
5、在一種可能的設(shè)計(jì)中,第一查詢(xún)語(yǔ)句還包括第一數(shù)據(jù)表的標(biāo)識(shí),m個(gè)第一聚集函數(shù)包括至少一個(gè)表達(dá)式;處理器計(jì)算首次遍歷到的n個(gè)基本計(jì)算單元的結(jié)果,可以包括:處理器根據(jù)第一數(shù)據(jù)表的標(biāo)識(shí)以及至少一個(gè)表達(dá)式,確定第一數(shù)據(jù)表中至少一個(gè)表達(dá)式分別對(duì)應(yīng)的數(shù)據(jù),再根據(jù)至少一個(gè)表達(dá)式分別對(duì)應(yīng)的數(shù)據(jù),計(jì)算n個(gè)基本計(jì)算單元的結(jié)果。通過(guò)該設(shè)計(jì),提供了一種確定n個(gè)基本計(jì)算單元的結(jié)果的方法。
6、在一種可能的設(shè)計(jì)中,處理器根據(jù)至少一個(gè)表達(dá)式分別對(duì)應(yīng)的數(shù)據(jù),計(jì)算n個(gè)基本計(jì)算單元的結(jié)果,可以包括:針對(duì)至少一個(gè)表達(dá)式中的第一表達(dá)式,第一表達(dá)式為至少一個(gè)表達(dá)式中任一表達(dá)式,執(zhí)行以下步驟:遍歷第一數(shù)據(jù)表中第一表達(dá)式對(duì)應(yīng)的數(shù)據(jù),計(jì)算與第一表達(dá)式相關(guān)的基本計(jì)算單元的結(jié)果。
7、在一種可能的設(shè)計(jì)中,處理器根據(jù)n個(gè)基本計(jì)算單元的結(jié)果,確定m個(gè)第一聚集函數(shù)分別對(duì)應(yīng)的計(jì)算結(jié)果之前,還可以包括:處理器確定m個(gè)第一聚集函數(shù)中每個(gè)第一聚集函數(shù)對(duì)應(yīng)的至少一個(gè)基本計(jì)算單元之間的運(yùn)算關(guān)系。處理器根據(jù)n個(gè)基本計(jì)算單元的結(jié)果,確定m個(gè)第一聚集函數(shù)分別對(duì)應(yīng)的計(jì)算結(jié)果,可以包括:針對(duì)m個(gè)第一聚集函數(shù)中每個(gè)第一聚集函數(shù),執(zhí)行:處理器從n個(gè)基本計(jì)算單元的結(jié)果中,確定每個(gè)第一聚集函數(shù)對(duì)應(yīng)的至少一個(gè)基本計(jì)算單元的結(jié)果,再基于每個(gè)第一聚集函數(shù)對(duì)應(yīng)的至少一個(gè)基本計(jì)算單元的結(jié)果,以及每個(gè)第一聚集函數(shù)對(duì)應(yīng)的至少一個(gè)基本計(jì)算單元之間的運(yùn)算關(guān)系,確定每個(gè)第一聚集函數(shù)對(duì)應(yīng)的計(jì)算結(jié)果。
8、第二方面,本申請(qǐng)實(shí)施例還提供了一種查詢(xún)裝置,所述查詢(xún)裝置包括收發(fā)單元和處理單元:
9、收發(fā)單元,用于接收用戶(hù)輸入的第一查詢(xún)語(yǔ)句,其中,第一查詢(xún)語(yǔ)句包括m個(gè)第一聚集函數(shù),m為正整數(shù),每個(gè)第一聚集函數(shù)與至少一個(gè)基本計(jì)算單元相對(duì)應(yīng);
10、處理單元,用于對(duì)m個(gè)第一聚集函數(shù)分別對(duì)應(yīng)的基本計(jì)算單元進(jìn)行遍歷,并計(jì)算首次遍歷到的n個(gè)基本計(jì)算單元的結(jié)果,n為正整數(shù);
11、處理單元,還用于根據(jù)n個(gè)基本計(jì)算單元的結(jié)果,確定m個(gè)第一聚集函數(shù)分別對(duì)應(yīng)的計(jì)算結(jié)果;
12、處理單元,還用于根據(jù)m個(gè)第一聚集函數(shù)分別對(duì)應(yīng)的計(jì)算結(jié)果,輸出第一查詢(xún)語(yǔ)句的執(zhí)行結(jié)果。
13、在一種可能的設(shè)計(jì)中,處理單元對(duì)m個(gè)第一聚集函數(shù)分別對(duì)應(yīng)的基本計(jì)算單元進(jìn)行遍歷之前,處理單元,還用于根據(jù)第一查詢(xún)語(yǔ)句確定第二查詢(xún)語(yǔ)句,其中,第二查詢(xún)語(yǔ)句包括第二聚集函數(shù),第二聚集函數(shù)包括分別與m個(gè)第一聚集函數(shù)對(duì)應(yīng)的m個(gè)表達(dá)式和m個(gè)函數(shù)符號(hào);根據(jù)m個(gè)表達(dá)式和m個(gè)函數(shù)符號(hào),確定m個(gè)第一聚集函數(shù)分別對(duì)應(yīng)的基本計(jì)算單元。
14、在一種可能的設(shè)計(jì)中,第一查詢(xún)語(yǔ)句還包括第一數(shù)據(jù)表的標(biāo)識(shí),m個(gè)第一聚集函數(shù)包括至少一個(gè)表達(dá)式;處理單元,具體用于:根據(jù)第一數(shù)據(jù)表的標(biāo)識(shí)以及至少一個(gè)表達(dá)式,確定第一數(shù)據(jù)表中至少一個(gè)表達(dá)式分別對(duì)應(yīng)的數(shù)據(jù);根據(jù)至少一個(gè)表達(dá)式分別對(duì)應(yīng)的數(shù)據(jù),計(jì)算n個(gè)基本計(jì)算單元的結(jié)果。
15、在一種可能的設(shè)計(jì)中,所述處理單元,具體用于:針對(duì)至少一個(gè)表達(dá)式中的第一表達(dá)式,第一表達(dá)式為至少一個(gè)表達(dá)式中任一表達(dá)式,執(zhí)行以下步驟:遍歷第一數(shù)據(jù)表中第一表達(dá)式對(duì)應(yīng)的數(shù)據(jù),計(jì)算與第一表達(dá)式相關(guān)的基本計(jì)算單元的結(jié)果。
16、在一種可能的設(shè)計(jì)中,處理單元根據(jù)n個(gè)基本計(jì)算單元的結(jié)果,確定m個(gè)第一聚集函數(shù)分別對(duì)應(yīng)的計(jì)算結(jié)果之前,處理單元,還用于:確定m個(gè)第一聚集函數(shù)中每個(gè)第一聚集函數(shù)對(duì)應(yīng)的至少一個(gè)基本計(jì)算單元之間的運(yùn)算關(guān)系;處理單元,具體用于:針對(duì)m個(gè)第一聚集函數(shù)中每個(gè)第一聚集函數(shù),執(zhí)行:從n個(gè)基本計(jì)算單元的結(jié)果中,確定每個(gè)第一聚集函數(shù)對(duì)應(yīng)的至少一個(gè)基本計(jì)算單元的結(jié)果;基于每個(gè)第一聚集函數(shù)對(duì)應(yīng)的至少一個(gè)基本計(jì)算單元的結(jié)果,以及每個(gè)第一聚集函數(shù)對(duì)應(yīng)的至少一個(gè)基本計(jì)算單元之間的運(yùn)算關(guān)系,確定每個(gè)第一聚集函數(shù)對(duì)應(yīng)的計(jì)算結(jié)果。
17、第三方面,本申請(qǐng)實(shí)施例還提供了一種計(jì)算機(jī)裝置,所述計(jì)算機(jī)裝置中包括存儲(chǔ)器和處理器,其中,所述存儲(chǔ)器用于存儲(chǔ)程序和數(shù)據(jù),所述處理器用于運(yùn)行所述存儲(chǔ)器存儲(chǔ)的程序,根據(jù)所述存儲(chǔ)器存儲(chǔ)的數(shù)據(jù),執(zhí)行以上第一方面的提供的方法。
18、第四方面,本申請(qǐng)實(shí)施例還提供了一種計(jì)算機(jī)存儲(chǔ)介質(zhì),該計(jì)算機(jī)存儲(chǔ)介質(zhì)中存儲(chǔ)有計(jì)算機(jī)程序,所述計(jì)算機(jī)程序被計(jì)算機(jī)執(zhí)行時(shí),使得計(jì)算機(jī)執(zhí)行以上第一方面提供的方法。
19、第五方面,本申請(qǐng)實(shí)施例還提供了一種芯片,所述芯片用于讀取存儲(chǔ)器中存儲(chǔ)的計(jì)算機(jī)程序,實(shí)現(xiàn)以上第一方面中的方法。
20、第六方面,本申請(qǐng)實(shí)施例提供了一種芯片系統(tǒng),該芯片系統(tǒng)包括處理器,用于支持計(jì)算機(jī)裝置實(shí)現(xiàn)上述第一方面中所涉及的功能。在一種可能的設(shè)計(jì)中,所述芯片系統(tǒng)還包括存儲(chǔ)器,所述存儲(chǔ)器用于保存該計(jì)算機(jī)裝置必要的程序和數(shù)據(jù)。該芯片系統(tǒng),可以由芯片構(gòu)成,也可以包含芯片和其他分立器件。
1.一種查詢(xún)方法,其特征在于,所述方法包括:
2.如權(quán)利要求1所述的方法,其特征在于,所述對(duì)所述m個(gè)第一聚集函數(shù)分別對(duì)應(yīng)的基本計(jì)算單元進(jìn)行遍歷之前,還包括:
3.如權(quán)利要求1所述的方法,其特征在于,所述第一查詢(xún)語(yǔ)句還包括第一數(shù)據(jù)表的標(biāo)識(shí),所述m個(gè)第一聚集函數(shù)包括至少一個(gè)表達(dá)式;
4.如權(quán)利要求3所述的方法,其特征在于,所述根據(jù)所述至少一個(gè)表達(dá)式分別對(duì)應(yīng)的數(shù)據(jù),計(jì)算所述n個(gè)基本計(jì)算單元的結(jié)果,包括:
5.如權(quán)利要求1所述的方法,其特征在于,所述根據(jù)所述n個(gè)基本計(jì)算單元的結(jié)果,確定所述m個(gè)第一聚集函數(shù)分別對(duì)應(yīng)的計(jì)算結(jié)果之前,還包括:
6.一種查詢(xún)裝置,其特征在于,所述查詢(xún)裝置包括收發(fā)單元和處理單元:
7.如權(quán)利要求6所述的裝置,其特征在于,所述對(duì)所述m個(gè)第一聚集函數(shù)分別對(duì)應(yīng)的基本計(jì)算單元進(jìn)行遍歷之前,所述處理單元,還用于根據(jù)所述第一查詢(xún)語(yǔ)句確定第二查詢(xún)語(yǔ)句,所述第二查詢(xún)語(yǔ)句包括第二聚集函數(shù),所述第二聚集函數(shù)包括分別與所述m個(gè)第一聚集函數(shù)對(duì)應(yīng)的m個(gè)表達(dá)式和m個(gè)函數(shù)符號(hào);
8.如權(quán)利要求6所述的裝置,其特征在于,所述第一查詢(xún)語(yǔ)句還包括第一數(shù)據(jù)表的標(biāo)識(shí),所述m個(gè)第一聚集函數(shù)包括至少一個(gè)表達(dá)式;
9.如權(quán)利要求8所述的裝置,其特征在于,所述處理單元,具體用于:
10.如權(quán)利要求6所述的裝置,其特征在于,所述根據(jù)所述n個(gè)基本計(jì)算單元的結(jié)果,確定所述m個(gè)第一聚集函數(shù)分別對(duì)應(yīng)的計(jì)算結(jié)果之前,所述處理單元,還用于:
11.一種計(jì)算機(jī)裝置,其特征在于,包括:
12.一種計(jì)算機(jī)存儲(chǔ)介質(zhì),其特征在于,所述計(jì)算機(jī)存儲(chǔ)介質(zhì)中存儲(chǔ)有計(jì)算機(jī)程序,所述計(jì)算機(jī)程序被計(jì)算機(jī)執(zhí)行時(shí),使得所述計(jì)算機(jī)執(zhí)行權(quán)利要求1-5任一項(xiàng)提供的方法。