[postgresql]postgresql的聚合函数sql实例
drop table if exists tree_test;
CREATE TABLE tree_test
(
id character varying(3),
pid character varying(3),
name character varying(50)
);
truncate table tree_test;
INSERT INTO tree_test(id,pid,name) values('001','0','深圳市');
INSERT INTO tree_test(id,pid,name) values('002','001','南山区');
INSERT INTO tree_test(id,pid,name) values('003','001','龙华区');
INSERT INTO tree_test(id,pid,name) values('004','001','宝安区');
INSERT INTO tree_test(id,pid,name) values('005','002','粤海街道');
INSERT INTO tree_test(id,pid,name) values('006','002','前海街道');
INSERT INTO tree_test(id,pid,name) values('007','002','深圳湾');
select * from tree_test ;
拼接concat_ws,没有分隔符
select concat_ws(id,pid,name) as con from tree_test
拼接concat_ws,用/分隔
select concat_ws('/',id,pid,name) as con from tree_test;
拼接concat_ws,用/分隔
select pid,group_concat(name) as con from tree_test group by pid;
用array_to_string组合
SELECT * ,array_to_string(array(SELECT att.name FROM tree_test att),'/') FROM tree_test;
id | pid | name | array_to_string
-----+-----+--------+--------------------------------------------------
001 | 0 | 厦门市 | 未来海/青春海/厦门市/集美区/同安区/海沧区/区政府
003 | 001 | 集美区 | 未来海/青春海/厦门市/集美区/同安区/海沧区/区政府
007 | 002 | 未来海 | 未来海/青春海/厦门市/集美区/同安区/海沧区/区政府
002 | 001 | 海沧区 | 海沧区/区政府/未来海/同安区/青春海/厦门市/集美区
005 | 002 | 区政府 | 海沧区/区政府/未来海/同安区/青春海/厦门市/集美区
004 | 001 | 同安区 | 未来海/青春海/同安区/厦门市/集美区/海沧区/区政府
006 | 002 | 青春海 | 青春海/厦门市/集美区/同安区/未来海/海沧区/区政府
把查询结果输出为数组
select array(SELECT att.name FROM tree_test att) from dual;
array
{厦门市,集美区,未来海,海沧区,区政府,同安区,青春海}
同一层级进行合并
select pid, string_agg(name, ',') from tree_test group by pid;
pid | string_agg
-----+--------------------------
001 | 南山区,龙华区,宝安区
002 | 深圳湾,前海街道,粤海街道
0 | 深圳市
或者:
select pid, array_to_string(array_agg(name),',') from tree_test group by pid;
pid | array_to_string
-----+--------------------------
002 | 深圳湾,前海街道,粤海街道
001 | 南山区,龙华区,宝安区
0 | 深圳市
同一层级进行合并,并且按name排序
select pid, string_agg(name, ',' order by name desc) from tree_test group by pid;
pid | string_agg
-----+--------------------------
002 | 粤海街道,深圳湾,前海街道
001 | 龙华区,宝安区,南山区
0 | 深圳市
[postgresql]postgresql的聚合函数sql实例相关推荐
- 《卸甲笔记》-PostgreSQL和Oracle的SQL差异分析之三:rownum和聚合函数
PostgreSQL是世界上功能最强大的开源数据库,在国内得到了越来越多机构和开发者的青睐和应用.随着PostgreSQL的应用越来越广泛,Oracle向PostgreSQL数据库的数据迁移需求也越来 ...
- sql中聚合函数和分组函数_学习SQL:聚合函数
sql中聚合函数和分组函数 SQL has many cool features and aggregate functions are definitely one of these feature ...
- 数据库-聚合函数-count-sum
SQL中的聚合函数 SQL语言中定义了部分的函数,可以帮助我们完成对查询结果的计算操作: 1.count 统计个数(行数) 2.sum函数:求和 3.avg函数:求平均值 4.max.min 求最 ...
- SqlService基础一篇搞定(建库建表、插入数据、修改和删除数据、基础查询、条件查询、模糊查询、聚合函数、分组查询、多表查询)
SqlService基础知识总汇 前言 一.SQLSERVER建库建表 1.检查数据库名是否存在 2.创建数据库 3.建表 4.修改表结构 5.删除添加约束 二.SQLSERVER插入数据 1.向部门 ...
- 【MySQL】聚合函数详解
聚合函数 SQL 函数还有一类,叫做聚合(或聚集.分组)函数,它是对一组数据进行汇总的函数,输入的是一组数据的集合,输出的是单个值. 1.聚合函数介绍 什么是聚合函数: 聚合函数作用于一组数据,并对一 ...
- 【PostGreSql】SQL中只要用到聚合函数就一定要用到group by 吗?
一,问题: select aa.apply_time, aa.product_cid, count(case when aa.r_state='审核中' then apply_id end )审核中订 ...
- PostgreSQL 10 自定义并行计算聚合函数的原理与实践
标签 PostgreSQL , 聚合函数 , 自定义 , AGGREGATE , 并行 , COMBINEFUNC 背景 PostgreSQL 9.6开始就支持并行计算了,意味着聚合.扫描.排序.JO ...
- postgresql报错:必须出现在 GROUP BY 子句中或者在聚合函数中使用
报错信息:Cause: org.postgresql.util.PSQLException: 错误: 字段 "s.re_scan_dt" 必须出现在 GROUP BY 子句中或者在 ...
- PostgreSQL Oracle 兼容性之 - PL/SQL DETERMINISTIC 与PG函数稳定性(immutable, stable, volatile)...
标签 PostgreSQL , Oracle , 函数稳定性 , stable , immutable , volatile , DETERMINISTIC 背景 Oracle创建pl/sql函数时, ...
最新文章
- 西门子标准报文1常用_关于西门子变频器报文的个人解读
- 全球人工智能战略与政策观察(2019)
- java pathinfo,nginx下支持PATH_INFO的方法实例详解
- 小波变换 完美通俗讲解 之 二
- Android 系统(41)---善用工具
- linux下proc文件的读写(部分转载)
- 推箱子视频教学Java,推箱子游戏教学视频
- 一致性检验Kappa 与 混淆矩阵
- 飞秋等级授权码_观点 | 谈谈网络安全等级保护与密码法
- 瑞禧靶向光热染料ICG偶联-吲哚菁绿标记Labeled泛素/黑接骨木凝集素SNA / EBL
- 如何将视频轻松转换为 GIF
- logx求x怎么用计算机,logx(logx等于什么)
- 手机端点击图片全屏预览
- PTA甲 1069~1072题解
- Python:素数求和
- LC滤波器的截止频率公式
- NVIC中断优先级管理
- 东大22春电子政务X《电子政务》在线平时作业3参考非答案
- at指令 meid_MTK平台手机写IMEI的方法
- CMAKE编译时如何自动下载第三方库并解压、安装到指定目录