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

          軟件下載吧

          當前位置:軟件下載吧 > 技術開發 > 數據庫 > PostgreSQL 實現將多行合并轉為列

          PostgreSQL 實現將多行合并轉為列

          時間:2024-02-21 13:55作者:下載吧人氣:33

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

          id Name
          1 peter
          1 lily
          2 john

          轉化后效果:

          id Name
          1 peter;lily
          2 john;

          實現方式使用 array_to_string 和 array_agg 函數,具體語句如下:

          string_agg(expression, delimiter) 把表達式變成一個數組

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

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

          補充:Postgresql實現動態的行轉列

          問題

          在數據處理中,常遇到行轉列的問題,比如有如下的問題:

          有這樣的一張表

          “Student_score”表:

          姓名 課程 分數
          張三 數學 83
          張三 物理 93
          張三 語文 80
          李四 語文 74
          李四 數學 84
          李四 物理 94

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

          姓名 數學 物理 語文
          李四 84 94 74
          張三 83 93 80

          當數據量比較少時,我們可以在Excel中使用數據透視表pivot table的功能實現這個需求,但當數據量較大,或者我們還需要在數據庫中進行后續的數據處理時,使用數據透視表就顯得不那么高效。

          下面,介紹如何在Postgresql中實現數據的行轉列。

          靜態寫法

          當我們要轉換的值字段是數值型時,我們可以用SUM()函數:

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

          標簽[db:關鍵字]

          相關下載

          查看所有評論+

          網友評論

          網友
          您的評論需要經過審核才能顯示

          熱門閱覽

          最新排行

          公眾號

          主站蜘蛛池模板: 性色AV一区二区三区| 一区二区在线免费视频| 日韩人妻无码一区二区三区久久 | 无码囯产精品一区二区免费 | 亚洲日本乱码一区二区在线二产线 | 亚洲色偷精品一区二区三区| 亚洲av综合av一区二区三区| 国产成人无码精品一区在线观看| 激情综合一区二区三区| 日韩精品一区二区三区老鸭窝| 在线观看中文字幕一区| 亚洲综合色一区二区三区小说| 无码国产精品一区二区高潮| 精品不卡一区二区| 无码一区二区三区| 午夜精品一区二区三区免费视频| 精品国产高清自在线一区二区三区| 亚洲一区二区在线视频| 无码AV一区二区三区无码| 午夜视频在线观看一区二区| 国产a∨精品一区二区三区不卡 | 国产精品一区12p| 人妻体内射精一区二区| 美女视频免费看一区二区| 日韩十八禁一区二区久久| 精品日韩一区二区三区视频| 日韩视频一区二区在线观看 | 2020天堂中文字幕一区在线观| 免费看一区二区三区四区 | 精品国产日韩亚洲一区| 国产成人精品一区二区三区| 日韩精品一区二区三区影院 | 东京热人妻无码一区二区av| 日韩精品无码视频一区二区蜜桃| 亚洲日本一区二区三区在线| 日韩在线不卡免费视频一区| 97se色综合一区二区二区| 麻豆va一区二区三区久久浪| 国产精品男男视频一区二区三区 | 日韩一区精品视频一区二区| 国产乱人伦精品一区二区|