关于如何在vertica上使用MySQL的group_concat()函数
短信预约 -IT技能 免费直播动态提醒
今天遇到客户在使用vertica的时候,想使用MySQL的group_concat()函数。
GROUP_CONCAT函数返回一个字符串结果,该结果由分组中的值连接组合而成。由于这个函数在vertica中是没有的。所以需要自己开发。幸好有人已经将该第三方的扩展包已经写好了。这里简单叙述一下在vertica中如何使用。
首先去下载能实现group_concat()函数的扩展包,这里是下载地址。下载好后拷贝到vertica的服务器上。
用root用户解压该包。
[root@v001 ] unzip vertica-package.zip
改变这个文件夹的所属者。
[root@v001] chown -R dbadmin:verticadba vertica-package/
切换到dbadmin用户。
[root@v001] su - dbadm
进入到解压好的那个文件夹
[dbadmin@v001 ] cd vertica-package/
在文件下有很多扩展包,我们只需要string-package这个包,因为这个包里包含有group_concat()函数
进入该文件夹
[dbadmin@v003 vertica-package]$ cd strings_package/
通过readme.md知道,需要先编译再安装
如果出现无法编译:则执行如下语句:
[root@v001 ]yum -y groupinstall "Development tools" && yum -y groupinstall "Additional Development"
[dbadmin@v003 strings_package]$ make
[dbadmin@v003 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()的功能。
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341