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行转列内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • postgresql的now()与Oracle的sysdate区别说明

    postgresql的now()与Oracle的sysdate区别说明

    这篇文章主要介绍了postgresql的now()与Oracle的sysdate区别说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-12-12
  • PostgreSQL核心原理之数据库偶尔会卡顿的原因分析

    PostgreSQL核心原理之数据库偶尔会卡顿的原因分析

    PostgreSQL功能强大、稳定可靠的开源关系型数据库系统,广泛应用于各种规模的企业和项目中,本文将从PostgreSQL的核心原理出发,深入剖析导致“偶尔卡顿”的常见原因,并结合底层机制进行解释,帮助 DBA 和开发者理解问题本质,从而更有效地排查与优化,感兴趣的朋友一起看看吧
    2026-02-02
  • 详解PostgreSQL 语法中关键字的添加

    详解PostgreSQL 语法中关键字的添加

    这篇文章主要介绍了详解PostgreSQL 语法中关键字的添加的相关资料,这里说明下在parser语法解析模块添加关键字,需要的朋友可以参考下
    2017-08-08
  • PostgreSQL的中文拼音排序案例

    PostgreSQL的中文拼音排序案例

    这篇文章主要介绍了PostgreSQL的中文拼音排序案例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-01-01
  • 基于PostgreSQL 权限解读

    基于PostgreSQL 权限解读

    这篇文章主要介绍了基于PostgreSQL 权限解读,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-01-01
  • postgresql 日期查询最全整理

    postgresql 日期查询最全整理

    这篇文章主要介绍了postgresql 日期查询最全整理,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2024-08-08
  • 详解如何诊断和解决PostgreSQL中的死锁问题

    详解如何诊断和解决PostgreSQL中的死锁问题

    在数据库系统中,死锁是一个常见但棘手的问题,PostgreSQL 也不例外,如果不及时诊断和解决,死锁可能会导致系统性能严重下降,甚至应用程序的崩溃,本文将详细探讨如何诊断和解决 PostgreSQL 中的死锁问题,需要的朋友可以参考下
    2024-07-07
  • 查询PostgreSQL中所有表逻辑外键的方法

    查询PostgreSQL中所有表逻辑外键的方法

    本文介绍了如何查询PostgreSQL中所有表的逻辑外键,并指导您如何先删除再重新建立这些外键,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友一起看看吧
    2023-08-08
  • postgresql数据库执行计划图文详解

    postgresql数据库执行计划图文详解

    了解PostgreSQL执行计划对于程序员来说是一项关键技能,执行计划是我们优化查询,验证我们的优化查询是否确实按照我们期望的方式运行的重要方式,这篇文章主要给大家介绍了关于postgresql数据库执行计划的相关资料,需要的朋友可以参考下
    2024-01-01
  • PostgreSQL使用JSONB存储和查询复杂的数据结构

    PostgreSQL使用JSONB存储和查询复杂的数据结构

    在PostgreSQL中,JSONB是一种二进制格式的JSON数据类型,它允许你在数据库中存储和查询复杂的JSON数据结构,本文给大家介绍了如何使用JSONB类型在PostgreSQL中存储和查询复杂的数据结构,需要的朋友可以参考下
    2024-04-04

最新评论