首頁 >資料庫 >mysql教程 >如何使用 unnest() 轉置 PostgreSQL 表?

如何使用 unnest() 轉置 PostgreSQL 表?

Linda Hamilton
Linda Hamilton原創
2025-01-04 21:34:43490瀏覽

How Can I Transpose a PostgreSQL Table Using `unnest()`?

透過將列轉換為行來轉置表

在PostgreSQL 中使用表時,可能存在需要轉置表的情況,本質上是將列轉換為行。對於各種數據分析目的,這是一個有用的轉換。

問題陳述:

您有一個以以下格式輸出資料的 PostgreSQL 函數或表格:

Sl.no username Designation salary etc..
1 A XYZ 10000 ...
2 B RTS 50000 ...
3 C QWE 20000 ...
4 D HGD 34343 ...

您想要轉置此表,以便輸出顯示在下面格式:

Sl.no 1 2 3 4 ...
Username A B C D ...
Designation XYZ RTS QWE HGD ...
Salary 10000 50000 20000 34343 ...

解決方案:

要實現這種轉置,您可以使用PostgreSQL 中的unnest() 函式。此函數允許您從數組中提取元素並將它們視為單獨的行。

以下是轉置表的查詢:

SELECT
   unnest(array['Sl.no', 'username', 'Designation','salary']) AS "Columns",
   unnest(array[Sl.no, username, value3Count,salary]) AS "Values"
FROM view_name
ORDER BY "Columns"

說明:

  • array[...] 建構包含列名稱和每個列對應值的陣列
  • unnest()函數從數組中提取每個元素並將它們視為單獨的行。
  • ORDER BY 子句確保轉置表具有原始列順序。

此查詢將輸出所需的轉置表格式。

參考:

unnest() 函數記錄在 PostgreSQL 文件中的「convertingColumnsToRows」下。

以上是如何使用 unnest() 轉置 PostgreSQL 表?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn