今天一个客户问怎样把表中相同键值对应的文本按照一定顺序拼接起来。如果使用SQL实现将非常麻烦,并且效率低下。GP4.1以后提供了一个函数array_agg可以方便快捷,高效的实现该功能

比如原始查询是

test1=# select n_regionkey,n_name from nation;
 n_regionkey |          n_name
-------------+---------------------------
           3 | UNITED KINGDOM
           1 | BRAZIL
           2 | VIETNAM
           4 | IRAN
           4 | SAUDI ARABIA
           4 | JORDAN
           0 | ALGERIA
           4 | EGYPT
           4 | IRAQ
           0 | ETHIOPIA
           1 | ARGENTINA
           3 | ROMANIA
           2 | CHINA
           2 | JAPAN
           0 | MOROCCO
           2 | INDONESIA
           1 | UNITED STATES
           0 | MOZAMBIQUE
           3 | RUSSIA
           3 | GERMANY
           1 | CANADA
           1 | PERU
           0 | KENYA
           2 | INDIA
           3 | FRANCE

我们要把相同地区的代码的国家,按照字母顺序拼接在一起,放在一行当中,并且显示地区代码。通过arrary_agg可以很方便的实现该功能

test1=# select n_regionkey,array_agg(trim(n_name) order by n_name) from nation group by n_regionkey;
 n_regionkey |                    array_agg
-------------+--------------------------------------------------
           2 | {CHINA,INDIA,INDONESIA,JAPAN,VIETNAM}
           4 | {EGYPT,IRAN,IRAQ,JORDAN,"SAUDI ARABIA"}
           1 | {ARGENTINA,BRAZIL,CANADA,PERU,"UNITED STATES"}
           3 | {FRANCE,GERMANY,ROMANIA,RUSSIA,"UNITED KINGDOM"}
           0 | {ALGERIA,ETHIOPIA,KENYA,MOROCCO,MOZAMBIQUE}

关于array_agg 函数的更多相关文章

  1. presto 函数中使用子查询

    我们已知 在sql中子查询可以配合  in 或者 exists 来使用,但是如何把子查询的结果传给函数呢? 场景: 我们有一个  省份表  数据如下: id   province 1    广东 2  ...

  2. HANA SQLScript

    数据类型 日期时间类型 DATE(日期) DATE 数据类型由年.月.日信息组成,表示一个日期值. DATA 类型的默认格式为‘YYYY-MM-DD’. YYYY 表示年, MM 表示月而 DD 表示 ...

  3. 在CentOS上编译安装PostgreSQL

    http://my.oschina.net/tashi/blog 第一步:准备阶段 获取必需软件包: CentOS中查看是否安装了某个软件的命令:rpm -qa | grep 软件名.which命令可 ...

  4. 2015第15周日PostgreSQL学习

    英文版官网地址:http://www.postgresql.org/ 上面显示的最新版本信息是PostgreSQL 9.4.1, 9.3.6, 9.2.10, 9.1.15 & 9.0.19 ...

  5. pgsql 聚合函数array_to_string,ARRAY_AGG

    array_to_string--将sql中的数组转为字符串 ARRAY_AGG--将sql中的数据转为数组处理 以下给大家一个简单的例子即可体会: 1.需求     2.数据库中原数据   1.pn ...

  6. postgresql----聚合函数

    聚合函数是从一组输入中计算出一个结果的函数. 测试表 test=# \d tbl_test Table "public.tbl_test" Column | Type | Modi ...

  7. PostgreSql 函数

    DECLARE curParkingTime TIMESTAMP ; curLeavingTime TIMESTAMP; parkingSpaceIndexCode VARCHAR[]; days I ...

  8. PostgreSQL-10-数据运算与函数

    1.算数运算符 SELECT 5+5;   加法 SELECT 10-5;  减法 SELECT 2*3;   乘法 SELECT 10.0/3;  除法 SELECT 10%7;  取余数 SELE ...

  9. postgresql拓展if、ifnull、group_concat函数

    postgresql版本是8.2.15. 最近陆续有数据分析师从impala.hive转到查询gpdb,gpdb虽然能够支持在查询语句中带多个distinct,但是缺少相应的if.ifnull.gro ...

随机推荐

  1. div显示与隐藏及height()函数

    总结与网络 1. $("#id").show()表示display:block,$("#id").hide()表示display:none; $("# ...

  2. 设置ios中imageView图片自适应,

    UIIimageView  *imageView = [UIImageView alloc]init]; [imageView setContentScaleFactor:[[UIScreen mai ...

  3. Dreamweaver层使用八定律

    当然,这些并非真正的定律,而只是一些有益的忠告,使你免陷于使用层时可能的困顿中.原来有九条定律的,我们精简掉一条,还有下面的八条: 1. 如果你要嵌套层,决不要使用多重父层,应共享一个共同的单一父层. ...

  4. EF OrderBy(string propertyname), OrderByDescending(string propertyname) 按属性排序,扩展方法

    public static class LinqExtensions { private static PropertyInfo GetPropertyInfo(Type objType, strin ...

  5. 解决maven web项目Cannot detect Web Project version. Please specify version of Web Project through...的错误

    前面已经创建maven web工程,但是问题来了,创建maven web工程之后会出现如下的错误,在pom.xml文件头部 有以下的错误 Description Resource Path Locat ...

  6. 如何提高maven的下载速度:享受一下mvn时飞的感觉

      找到 maven老家 conf/settings.xml,  在<mirrors>标签内增加阿里云maven镜像 最终结果见下面:  <mirrors>       < ...

  7. Xcode好用的插件(随时更新)

    古人云"工欲善其事必先利其器",打造一个强大的开发环境,是立即提升自身战斗力的绝佳途径!下面简单介绍下插件是什么.如何使用Xcode插件以及一些常用的Xcode插件的推荐. 一.插 ...

  8. FOUNDATION_EXPORT 延伸

    一般iOS我们定义常量的方法有两种,来看下面例子 我的.h文件 1 2 FOUNDATION_EXPORT NSString * const kMyConstantString;   FOUNDATI ...

  9. SpringMVC初步——HelloWorld的实现

    开通博客园好几个月了,今天开始要用博客园记录自己的学习过程! 目录: 导包: 1. 配置web.xml文件的springDispatcherServlet 在xml中 alt+/ 找到springdi ...

  10. gerrit的merge conflict

    找了很多资料,最后参考http://blog.csdn.net/w_jewelry/article/details/8123639 解决的. 先把gerrit的那几个commit abandon掉. ...