這篇文章將為大家詳細(xì)講解有關(guān)PostgreSQL行轉(zhuǎn)列的方法,小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。
目前創(chuàng)新互聯(lián)建站已為上千多家的企業(yè)提供了網(wǎng)站建設(shè)、域名、虛擬空間、網(wǎng)站運(yùn)營(yíng)、企業(yè)網(wǎng)站設(shè)計(jì)、花溪網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。
PostgreSQL如何行轉(zhuǎn)列
方法一: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交叉函數(shù)
推薦: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(分組,行轉(zhuǎn)列,字符切割)
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
關(guān)于PostgreSQL行轉(zhuǎn)列的方法就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。
網(wǎng)頁(yè)名稱:PostgreSQL行轉(zhuǎn)列的方法
地址分享:http://jinyejixie.com/article48/ghdchp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供關(guān)鍵詞優(yōu)化、、企業(yè)建站、網(wǎng)站內(nèi)鏈、商城網(wǎng)站、企業(yè)網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)