MySql中group_concat()函数可以将列中的数据转到一行中进行显示,传说中的列转行。 PostgreSql中则是string_agg()函数 2、语法结构 2.1 MySql 默认的分隔符是逗号"," group_concat([distinct]要连接的字段[orderby排序字段asc|desc][separator'分隔符']) 1. 2.2 PostgreSql 必须指定分隔符 string_agg(要连接的字...
或者用(array_agg(person_name order by create_time desc ))[1] ```python SELECT person_id AS job_no, string_agg(distinct(person_name),',')asstr_person_name, (array_agg(person_name order by create_time desc ))[1]asarr_person_name FROM public.tb_attendance_model WHERE create_time >=...
string_agg,array_agg 这两个函数的功能大同小异,只不过合并数据的类型不同。 https://www.postgresql.org/docs/9.6/static/functions-aggregate.html array_agg(expression) 把表达式变成一个数组 一般配合 array_to_string() 函数使用 1. 2. 1 2 string_agg(expression, delimiter) 直接把一个表达式变成字符串...
deptno | array_agg ——–+———- 20 | {JONES} 30 | {ALLEN,MARTIN} array_agg 去重元素,例如查询所有的部门 select array_agg(distinct deptno) from jinbo.employee; array_agg ———– {20,30} (1 row) #不仅可以去重,还可以排序 select array_agg(distinct deptno order by deptno desc) from...
1. postgresql 查询多行合并成一行 SELECTstring_agg (DISTINCTrelname,','orderbyrelnameASC)FROMpg_stat_user_tablesWHEREschemaname='public' 2. postgresql 查询所有表记录数 SELECTschemaname,relname,n_live_tupFROMpg_stat_user_tableswhereschemaname='public'ORDERBYn_live_tupDESC; ...
array_agg 去重元素,例如查询所有的部门 selectarray_agg(distinct deptno)fromjinbo.employee; array_agg --- {20,30} (1row)#不仅可以去重,还可以排序selectarray_agg(distinct deptno orderbydeptno desc)fromjinbo.employee; array_agg --- {30,20...
left outer join (select distinct '/'||id||'/' as prefix_id,id from tmp0 where 1=1 ) a1 on position( a1.prefix_id in '/'||array_to_string(a0.pathid,'/')||'/' ) >0 left outer join pg_stat_activity a2 -- select * from pg_stat_activity ...
其中,COUNT(*)返回了该部门员工的总数(5),COUNT(DISTINCT salary)返回了薪水不相同的员工数量(4),COUNT(commission_pct)返回了佣金百分比不为空值的数量(0),该部门员工都没有佣金提成。 以下示例使用STRING_AGG将 IT 部门员工的名字使用分号进行分隔,按照薪水从高到底排序后连接成一个字符串: ...
postgresql合并string_agg函数的实例 1 有时候我们会需要将多条数据根据⼀些特别的字段做⼀些合并。⽐如下⾯这个查询,正常会查询出3条数据,但是我们会希望根据create_by 分成两列显⽰ 2 这时候需要⽤到string_agg函数,先通过group by分组,在进⾏合并,当然查询结果需要满⾜group by的限制;sql语句...
ORDER BY dept_id, salary DESC;其中,DISTINCT ON (dept_id) 表示部门 id 相同的数据组,返回其中的第一条记录;ORDER BY 子句确保了返回的是每个部分中月薪最高的记录。DISTINCT ON 中的字段或表达式(可能多个)必须和 ORDER BY 最左侧的几个字段或表达式相同。IS DISTINCT FROM 空值(NULL)是数据库中的一...