下載吧 - 綠色安全的游戲和軟件下載中心

          軟件下載吧

          當(dāng)前位置:軟件下載吧 > 技術(shù)開(kāi)發(fā) > 數(shù)據(jù)庫(kù) > PostgreSQL 實(shí)現(xiàn)將多行合并轉(zhuǎn)為列

          PostgreSQL 實(shí)現(xiàn)將多行合并轉(zhuǎn)為列

          時(shí)間:2024-02-21 13:55作者:下載吧人氣:20

          需求將下列表格相同id的name拼接起來(lái)輸出成一列

          id Name
          1 peter
          1 lily
          2 john

          轉(zhuǎn)化后效果:

          id Name
          1 peter;lily
          2 john;

          實(shí)現(xiàn)方式使用 array_to_string 和 array_agg 函數(shù),具體語(yǔ)句如下:

          string_agg(expression, delimiter) 把表達(dá)式變成一個(gè)數(shù)組

          string_agg(expression, delimiter) 直接把一個(gè)表達(dá)式變成字符串

          select id, array_to_string( array_agg(Name), ‘;’ ) from table group by id

          補(bǔ)充:Postgresql實(shí)現(xiàn)動(dòng)態(tài)的行轉(zhuǎn)列

          問(wèn)題

          在數(shù)據(jù)處理中,常遇到行轉(zhuǎn)列的問(wèn)題,比如有如下的問(wèn)題:

          有這樣的一張表

          “Student_score”表:

          姓名 課程 分?jǐn)?shù)
          張三 數(shù)學(xué) 83
          張三 物理 93
          張三 語(yǔ)文 80
          李四 語(yǔ)文 74
          李四 數(shù)學(xué) 84
          李四 物理 94

          我們想要得到像這樣的一張表:

          姓名 數(shù)學(xué) 物理 語(yǔ)文
          李四 84 94 74
          張三 83 93 80

          當(dāng)數(shù)據(jù)量比較少時(shí),我們可以在Excel中使用數(shù)據(jù)透視表pivot table的功能實(shí)現(xiàn)這個(gè)需求,但當(dāng)數(shù)據(jù)量較大,或者我們還需要在數(shù)據(jù)庫(kù)中進(jìn)行后續(xù)的數(shù)據(jù)處理時(shí),使用數(shù)據(jù)透視表就顯得不那么高效。

          下面,介紹如何在Postgresql中實(shí)現(xiàn)數(shù)據(jù)的行轉(zhuǎn)列。

          靜態(tài)寫(xiě)法

          當(dāng)我們要轉(zhuǎn)換的值字段是數(shù)值型時(shí),我們可以用SUM()函數(shù):

          CREATE TABLE Student_score(姓名 varchar, 課程 varchar, 分?jǐn)?shù) int);
          INSERT INTO Student_score VALUES(‘張三’,’數(shù)學(xué)’,83);
          INSERT INTO Student_score VALUES(‘張三’,’物理’,93);
          INSERT INTO Student_score VALUES(‘張三’,’語(yǔ)文’,80);
          INSERT INTO Student_score VALUES(‘李四’,’語(yǔ)文’,74);
          INSERT INTO Student_score VALUES(‘李四’,’數(shù)學(xué)’,84);
          INSERT INTO Student_score VALUES(‘李四’,’物理’,94);
          select 姓名
          ,sum(case 課程 when ‘數(shù)學(xué)’ then 分?jǐn)?shù) end) as 數(shù)學(xué)
          ,sum(case 課程 when ‘物理’ then 分?jǐn)?shù) end) as 物理
          ,sum(case 課程 when ‘語(yǔ)文’ then 分?jǐn)?shù) end) as 語(yǔ)文
          from Student_score
          GROUP BY 1

          標(biāo)簽[db:關(guān)鍵字]

          相關(guān)下載

          查看所有評(píng)論+

          網(wǎng)友評(píng)論

          網(wǎng)友
          您的評(píng)論需要經(jīng)過(guò)審核才能顯示

          熱門閱覽

          最新排行

          公眾號(hào)

          主站蜘蛛池模板: 国产乱码精品一区二区三区四川| 色国产精品一区在线观看| 无码人妻精品一区二区三区66 | 亚洲va乱码一区二区三区| 中日韩一区二区三区| 成人精品一区久久久久| 久久99精品免费一区二区| 国产成人精品a视频一区| 天美传媒一区二区三区| 精品福利一区二区三区| 精品无码av一区二区三区| 亚洲AV无码一区二区三区性色 | 久久99精品国产一区二区三区| 99精品国产高清一区二区三区| 大香伊人久久精品一区二区| 国产熟女一区二区三区五月婷| 曰韩精品无码一区二区三区| 国产SUV精品一区二区四| 少妇精品久久久一区二区三区| 国精产品一区一区三区MBA下载 | 日韩免费无码一区二区视频| 无码囯产精品一区二区免费| 国产精品亚洲综合一区在线观看| 日韩精品在线一区二区| 能在线观看的一区二区三区| 国产午夜精品片一区二区三区| 99久久精品费精品国产一区二区 | 精品无码一区二区三区亚洲桃色| 三级韩国一区久久二区综合| 国产麻豆精品一区二区三区| 人妻无码视频一区二区三区| 精品视频一区二区三区免费| 亚洲欧洲一区二区三区| 无码欧精品亚洲日韩一区夜夜嗨| 亚洲综合激情五月色一区| 国产精品电影一区| 国产日产久久高清欧美一区| 久热国产精品视频一区二区三区| 亚洲一区二区三区在线观看蜜桃 | 日本一区二区三区精品国产| 亚洲视频一区在线播放|