首頁 >資料庫 >mysql教程 >如何使用 SQL 將多列(組織和位置)資料轉換為更廣泛的格式?

如何使用 SQL 將多列(組織和位置)資料轉換為更廣泛的格式?

Patricia Arquette
Patricia Arquette原創
2025-01-03 00:53:41622瀏覽

How to Pivot Data with Multiple Columns (org and position) into a Wider Format Using SQL?

使用多列透視資料

透視查詢對於將資料從高而窄的格式重新排列為寬而表格的格式至關重要。在這種特定情況下,您需要將具有兩個欄位(即 org 和position)的透視格式表示的資料轉換為更寬的格式,每種語言(en、fi 和 sv)具有單獨的欄位。

As您提到,使用 CONNECT BY 指令進行資料透視查詢可能很有用。然而,這裡有一個使用 PIVOT 運算子的更簡單的方法:

SELECT  user_id,
        MAX(CASE WHEN lang = 'en' THEN org END) AS org_en,
        MAX(CASE WHEN lang = 'en' THEN position END) AS position_en,
        MAX(CASE WHEN lang = 'fi' THEN org END) AS org_fi,
        MAX(CASE WHEN lang = 'fi' THEN position END) AS position_fi,
        MAX(CASE WHEN lang = 'sv' THEN org END) AS org_sv,
        MAX(CASE WHEN lang = 'sv' THEN position END) AS position_sv
FROM    source
GROUP BY user_id

MAX() 函數用於檢索與每個使用者 ID 和語言組合關聯的最新值。或者,您可以根據您的特定要求使用 SUM() 等聚合函數。

此查詢將產生所需的輸出:

user_id org_fi position_fi org_en position_en org_sv position_sv
1001 USD Bossa USE Boss NULL NULL
1002 NULL NULL NULL NULL GWR Dim
1003 GGA DCS NULL NULL GCA DDD

請記住調整 MAX() 函數以及根據您的實際資料和需求的CASE表達式。透過這種方法,您可以使用多列有效地轉換數據,從而可以靈活地以更適合您的分析和演示需求的格式來表示數據。

以上是如何使用 SQL 將多列(組織和位置)資料轉換為更廣泛的格式?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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