標籤:group_concat mysql vertica 擴充包
今天遇到客戶在使用vertica的時候,想使用MySQL的group_concat()函數。
GROUP_CONCAT函數返回一個字串結果,該結果由分組中的值串連組合而成。由於這個函數在vertica中是沒有的。所以需要自己開發。幸好有人已經將該第三方的擴充包已經寫好了。這裡簡單敘述一下在vertica中如何使用。
首先去下載能實現group_concat()函數的擴充包,這裡是。下載好後拷貝到vertica的伺服器上。
用root使用者解壓該包。
[[email protected] ] unzip vertica-package.zip
改變這個檔案夾的所屬者。
[[email protected]] chown -R dbadmin:verticadba vertica-package/
切換到dbadmin使用者。
[[email protected]] su - dbadm
進入到解壓好的那個檔案夾
[[email protected] ] cd vertica-package/
在檔案下有很多擴充包,我們只需要string-package這個包,因為這個包裡包含有group_concat()函數
進入該檔案夾
[[email protected] vertica-package]$ cd strings_package/
通過readme.md知道,需要先編譯再安裝
如果出現無法編譯:則執行如下語句:
[[email protected] ]yum -y groupinstall "Development tools" && yum -y groupinstall "Additional Development"
[[email protected] strings_package]$ make[[email protected] strings_package]$ make install
提示如下資訊就算安裝成功。
接下來進行測試:
串連資料庫:
輸入:
dbadmin=> select group_concat(node_name) over () from nodes;
輸出結果:
再測試如下語句:
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;
輸出結果:
可以看到它已經實現了MySQL的group_concat()的功能。
關於如何在vertica上使用MySQL的group_concat()函數