今天遇到客戶在使用vertica的時(shí)候,想使用MySQL的group_concat()函數(shù)。
日土網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)!從網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、響應(yīng)式網(wǎng)站等網(wǎng)站項(xiàng)目制作,到程序開發(fā),運(yùn)營(yíng)維護(hù)。創(chuàng)新互聯(lián)于2013年開始到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)。
GROUP_CONCAT函數(shù)返回一個(gè)字符串結(jié)果,該結(jié)果由分組中的值連接組合而成。由于這個(gè)函數(shù)在vertica中是沒有的。所以需要自己開發(fā)。幸好有人已經(jīng)將該第三方的擴(kuò)展包已經(jīng)寫好了。這里簡(jiǎn)單敘述一下在vertica中如何使用。
首先去下載能實(shí)現(xiàn)group_concat()函數(shù)的擴(kuò)展包,這里是下載地址。下載好后拷貝到vertica的服務(wù)器上。
用root用戶解壓該包。
[root@v001 ] unzip vertica-package.zip
改變這個(gè)文件夾的所屬者。
[root@v001] chown -R dbadmin:verticadba vertica-package/
切換到dbadmin用戶。
[root@v001] su - dbadm
進(jìn)入到解壓好的那個(gè)文件夾
[dbadmin@v001 ] cd vertica-package/
在文件下有很多擴(kuò)展包,我們只需要string-package這個(gè)包,因?yàn)檫@個(gè)包里包含有g(shù)roup_concat()函數(shù)
進(jìn)入該文件夾
[dbadmin@v003 vertica-package]$ cd strings_package/
通過readme.md知道,需要先編譯再安裝
如果出現(xiàn)無法編譯:則執(zhí)行如下語句:
[root@v001 ]yum -y groupinstall "Development tools" && yum -y groupinstall "Additional Development"
[dbadmin@v003 strings_package]$ make [dbadmin@v003 strings_package]$ make install
提示如下信息就算安裝成功。
接下來進(jìn)行測(cè)試:
連接數(shù)據(jù)庫(kù):
輸入:
dbadmin=> select group_concat(node_name) over () from nodes;
輸出結(jié)果:
再測(cè)試如下語句:
dbadmin=> select schema_name,projection_name,group_concat(node_name) over (partition by schema_name,projection_name) from (select distinct node_name,schema_name,projection_name from storage_containers) sc order by schema_name, projection_name;
輸出結(jié)果:
可以看到它已經(jīng)實(shí)現(xiàn)了MySQL的group_concat()的功能。