使用多列透視資料
透視查詢對於將資料從高而窄的格式重新排列為寬而表格的格式至關重要。在這種特定情況下,您需要將具有兩個欄位(即 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中文網其他相關文章!