您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關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交叉函數
推薦:postgresql教程
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行轉列的方法就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。