PostgreSQL行转列的多种方法

 更新时间:2023年10月30日 10:32:48   作者:围城客  
这篇文章主要介绍了PostgreSQL行转列的多种方法,本文给大家分享三种方法,每种方法结合示例代码给大家介绍的非常详细,需要的朋友可以参考下

PostgreSQL如何行转列

方法一:group by + sum + case when

select name,
sum(case when zbfm='年龄' then value else 0 end) as 年龄,
sum(case when zbfm='身高' then value else 0 end) as 身高,
sum(case when zbfm='体重' then value else 0 end) as 体重
from test group by name
having name like '%1' and length(name)=4 order by 年龄 desc

方法二:用postgresql的crosstab交叉函数

crosstab(unknown, unknown) does not exist
select * from
crosstab(
'select name,zbfm,value from test where name like ''%1'' and length(name)=4',$$values('年龄'), ('身高'), ('体重')$$)
as score(name text, 年龄 int, 身高 int, 体重 int)
order by 年龄 desc

方法三:group by + string_agg + split_part(分组,行转列,字符切割)

select name, 
split_part(split_part(temp,',',1),':',2) as 年龄,
split_part(split_part(temp,',',2),':',2) as 身高,
split_part(split_part(temp,',',3),':',2) as 体重
from(
select name, string_agg(zbfm||':'||value,',') as temp from test
group by name 
having name like '%1' and length(name)=4
) as t order by 年龄 desc

group by + string_agg

select name, string_agg(zbfm||':'||value,',') from test
group by name 
having name like '%1' and length(name)=4

到此这篇关于PostgreSQL如何行转列的文章就介绍到这了,更多相关PostgreSQL行转列内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • pgsql之pg_stat_replication的使用详解

    pgsql之pg_stat_replication的使用详解

    这篇文章主要介绍了pgsql之pg_stat_replication的使用详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-01-01
  • postgresql如何兼容MySQL if函数

    postgresql如何兼容MySQL if函数

    这篇文章主要介绍了postgresql如何兼容MySQL if函数问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-03-03
  • PostGresql 实现四舍五入、小数转换、百分比的用法说明

    PostGresql 实现四舍五入、小数转换、百分比的用法说明

    这篇文章主要介绍了PostGresql 实现四舍五入、小数转换、百分比的用法说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-01-01
  • 使用Postgresql 实现快速插入测试数据

    使用Postgresql 实现快速插入测试数据

    这篇文章主要介绍了使用Postgresql 实现快速插入测试数据,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-01-01
  • Vcenter清理/storage/archive空间的处理方式

    Vcenter清理/storage/archive空间的处理方式

    通过SSH登陆到Vcenter并检查/storage/archive目录发现占用过高,该目录用于存储归档的日志文件和历史数据,解决方案是保留近30天的归档文件,这篇文章主要给大家介绍了关于Vcenter清理/storage/archive空间的处理方式,需要的朋友可以参考下
    2024-11-11
  • Postgresql开启远程访问的步骤全纪录

    Postgresql开启远程访问的步骤全纪录

    postgre一般默认为本地连接,不支持远程访问,所以如果要开启远程访问,需要更改安装文件的配置。下面这篇文章主要给大家介绍了关于Postgresql开启远程访问的相关资料,需要的朋友可以参考借鉴,下面来一起看看吧。
    2018-03-03
  • PostgreSQL ERROR: invalid escape string 解决办法

    PostgreSQL ERROR: invalid escape string 解决办法

    这篇文章主要介绍了PostgreSQL ERROR: invalid escape string 解决办法,本文环境是JDBC+PostgreSQL,需要的朋友可以参考下
    2014-07-07
  • postgresql之greenplum字符串去重拼接方式

    postgresql之greenplum字符串去重拼接方式

    这篇文章主要介绍了postgresql之greenplum字符串去重拼接方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-05-05
  • PostgreSQL 实现快速删除一个用户

    PostgreSQL 实现快速删除一个用户

    这篇文章主要介绍了PostgreSQL 实现快速删除一个用户,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-01-01
  • PostgreSQL进行重置密码的方法小结

    PostgreSQL进行重置密码的方法小结

    今天想测试一个PostgresSQL语法的 SQL,但是打开PostgresSQL之后沉默了,密码是什么?日长月久的,渐渐就忘记了,于是开始了寻找密码的道路,所以本文介绍了Postgresql忘记密码,如何重置密码,需要的朋友可以参考下
    2024-05-05

最新评论