PostgreSql 合并多行记录

需求描述:

A表有如下数据

id
1
2
3
4

B表有如下数据

id name
1 aaa
1 bbb
1 ccc
2 aa
2 bb
3 c

A表和B表通过id关联,需要查询结果如下:

id name
1 aaa,bbb,ccc
2 aa,bb
3 c
4  

查询语句如下:

[sql] view plaincopy

        1. SELECT a.id,array_to_string(array(
        2. SELECT b.name  FROM  db_xx."B" b  WHERE b.id=a.id
        3. ), ‘,‘) as name
        4. from db_xx."A" a
        5. order by a.id
时间: 2024-10-12 00:34:37

PostgreSql 合并多行记录的相关文章

Oracle 合并多行记录为一行

1.实际需求情况如下:    描述:上述表中,某一位同学有多门课程和成绩,现在希望有一条SQL语句,将课程名称和成绩合并在一起显示,如下: 描述:将这位同学的全部课程和成绩用一个字段表示,里面包括全部的课程名称和考试成绩 2.问题分析 解决这个问题可以采用创建function的办法,去合并这2个字段,但这样太麻烦,由于是采用的Oracle10g,故可以采用函数wmsys.wm_concat()实现此功能. 3.解决方案 SQL: 第一步先写一个视图view_ly_sjdxpt_jwcj,合并这2

Oracle多行记录合并的几种方法

今天正好遇到需要做这个功能,顺手搜了一下网络,把几种方法都列出来,方便以后参考. 1 什么是合并多行字符串(连接字符串)呢,例如: SQL> desc test; Name Type Nullable Default Comments ------- ------------ -------- ------- -------- COUNTRY VARCHAR2(20) Y CITY VARCHAR2(20) Y SQL> select * from test; COUNTRY CITY ---

百万年薪python之路 -- MySQL数据库之 MySQL行(记录)的操作(一)

MySQL的行(记录)的操作(一) 1. 增(insert) insert into 表名 value((字段1,字段2...); # 只能增加一行记录 insert into 表名 values(字段1,字段2...); insert into 表名(id,name) values(字段1,字段2),(xx1,xx2); id,name,age 插入查询结果 语法: INSERT INTO 表名(字段1,字段2,字段3-字段n) SELECT (字段1,字段2,字段3-字段n) FROM 表2

jquery动态合并表格行

利用<td rowspan = "num"/>;原理来实现,其中num为要合并的行数. <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title></title> <style> td{ border:1px solid red; } </style> <

计算数据库中各个表的数据量和每行记录所占用空间--添加架构信息-读后感及知识整理

参考文章: SQL Server 游标运用:查看一个数据库所有表大小信息(Sizes of All Tables in a Database) 分享一个SQLSERVER脚本(计算数据库中各个表的数据量和每行记录所占用空间) 监控SQLServer 数据库表每天的空间变化情况 仔细拜读上面三位的文章,不会的知识点又参考了MSDN,巩固了知识点如下: 知识点: 1.表的架构信息,涉及的系统对象 sys.schemas 和 INFORMATION_SCHEMA.TABLES,但后者不是官方推荐方式,

INSERT INTO插入行记录

--添加一条记录 INSERT INTO tableName(col1,col2,col3) VALUES (1,2,3) --添加多条记录 INSERT INTO tableName(col1,col2,col3) SELECT 3,4,5 UNION ALL SELECT 6,7,8 --从另外的一张表中读取多条数据添加到新表中 INSERT INTO tableName(col1,col2,col3) SELECT a,b,c FROM tableA --从其他的多张表中读取数据添加到新表

ADF_12c_遍历VO处理行记录

ADF中遍历VO行记录不止一种方法,但项目开发中仍有区别,如下给出两种方法. 1.通过VO直接取行: TargetRunVarForUpdatedImpl vo = (TargetRunVarForUpdatedImpl)getViewObject("TargetRunVarForUpdatedIterator"); int i = 0; Row row = null; vo.reset(); while (vo.hasNext()) { if (i == 0) row = vo.fi

INSERT INTO .. ON DUPLICATE KEY更新多行记录

转自:http://www.ludou.org/insert-into-on-duplicate-key-update-for-multiple-items.html 如果在INSERT语句末尾指定了ON DUPLICATE KEY UPDATE,并且插入行后会导致在一个UNIQUE索引或PRIMARY KEY中出现重复值,则执行旧行UPDATE:如果不会导致唯一值列重复的问题,则插入新行.例如,如果列a被定义为UNIQUE,并且包含值1,则以下两个语句具有相同的效果: 1234 INSERT 

SQLLoader7(只导入数据文件的其中几行记录)

数据文件: D:\oracletest\test1.txt 1 SMITH CLERK 7902 1980-12-17 800 0 20 2 ALLEN SALESMAN 7698 1981-02-20 1600 300 30 3 WARD SALESMAN 7698 1981-02-22 1250 500 30 4 JONES MANAGER 7839 1981-04-02 2975 0 20 5 MARTIN SALESMAN 7698 1981-09-28 1250 1400 30 6 B