关于array_agg 函数
今天一个客户问怎样把表中相同键值对应的文本按照一定顺序拼接起来。如果使用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 函数的更多相关文章
- presto 函数中使用子查询
我们已知 在sql中子查询可以配合 in 或者 exists 来使用,但是如何把子查询的结果传给函数呢? 场景: 我们有一个 省份表 数据如下: id province 1 广东 2 ...
- HANA SQLScript
数据类型 日期时间类型 DATE(日期) DATE 数据类型由年.月.日信息组成,表示一个日期值. DATA 类型的默认格式为‘YYYY-MM-DD’. YYYY 表示年, MM 表示月而 DD 表示 ...
- 在CentOS上编译安装PostgreSQL
http://my.oschina.net/tashi/blog 第一步:准备阶段 获取必需软件包: CentOS中查看是否安装了某个软件的命令:rpm -qa | grep 软件名.which命令可 ...
- 2015第15周日PostgreSQL学习
英文版官网地址:http://www.postgresql.org/ 上面显示的最新版本信息是PostgreSQL 9.4.1, 9.3.6, 9.2.10, 9.1.15 & 9.0.19 ...
- pgsql 聚合函数array_to_string,ARRAY_AGG
array_to_string--将sql中的数组转为字符串 ARRAY_AGG--将sql中的数据转为数组处理 以下给大家一个简单的例子即可体会: 1.需求 2.数据库中原数据 1.pn ...
- postgresql----聚合函数
聚合函数是从一组输入中计算出一个结果的函数. 测试表 test=# \d tbl_test Table "public.tbl_test" Column | Type | Modi ...
- PostgreSql 函数
DECLARE curParkingTime TIMESTAMP ; curLeavingTime TIMESTAMP; parkingSpaceIndexCode VARCHAR[]; days I ...
- PostgreSQL-10-数据运算与函数
1.算数运算符 SELECT 5+5; 加法 SELECT 10-5; 减法 SELECT 2*3; 乘法 SELECT 10.0/3; 除法 SELECT 10%7; 取余数 SELE ...
- postgresql拓展if、ifnull、group_concat函数
postgresql版本是8.2.15. 最近陆续有数据分析师从impala.hive转到查询gpdb,gpdb虽然能够支持在查询语句中带多个distinct,但是缺少相应的if.ifnull.gro ...
随机推荐
- Android UI方面的学习记录
1,android:textAllCaps=“false” android5.0后有可能button的text显示全是大写,设置这个后才能正常显示小写 2,优化listview性能: 1,view重用 ...
- WPF之DatePicker使其只能选择日期,不能输入日期
<DatePicker.Resources> <Style TargetType="DatePickerTextBox"> <S ...
- Android编程获取手机的IMEI
手机在生产时,每部手机均有一个唯一的标识(ID),国际上采用国际移动设备身份码(IMEI, International Mobile Equipment Identity).IMEI是由15位数字组成 ...
- Oracle获取时间日期月份星期数
1.日期和字符转换函数用法(to_date,to_char)select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') as nowTime from dual; ...
- Zookeeper理解
ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,它包含一个简单的原语集,分布式应用程序可以基于它实现同步服务,配置维护和命名服务等.Zookeeper是hadoop的一个子项目,其 ...
- ZOJ 2476 Total Amount
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2476 Time Limit: 2 Seconds ...
- Spring MVC Flash Attribute
转自:Spring MVC Flash Attribute 的讲解与使用示例 Spring MVC 3.1版本加了一个很有用的特性,Flash属性,它能解决一个长久以来缺少解决的问题,一个POST/R ...
- 读书笔记之C# delegate
c#代理的使用主要在:需要将一个方法当做参数传递到另一个方法时. 比如启动一个线程执行任务,而这个线程要执行的方法可以通过代理传递过来. 代理包括一个方法或者多个方法的地址和C++的函数指针很相似,但 ...
- 使用GNU/Linux播放电视节目
目前,生活中很多事情都可以在电脑前完成,读书.写程序.听音乐.看视频等.如果也可以在电脑上收看有线电视节目的话,那就更好了.为此,我购买了圆刚视频采集卡AverMedia C725B.如下图所示. 官 ...
- 单例:用AFNetworking封装举例
创建单例的方式 import AFNetworking class NetworkTools: AFHTTPSessionManager { //let是线程安全的 //使用单例实例只需要拿到Netw ...