首頁 > 資料庫 > mysql教程 > 如何在 MySQL 中逆透視列來重構資料?

如何在 MySQL 中逆透視列來重構資料?

Patricia Arquette
發布: 2025-01-20 05:36:10
原創
116 人瀏覽過

How Can I Unpivot Columns in MySQL to Restructure My Data?

MySQL 資料重塑:列的展開

當需要重塑表格資料時,列的展開(Unpivoting)就變得必要了。這項技術將列轉換為行,提供更靈活的資料表示。雖然 MySQL 沒有提供明確的展開函數,但我們可以透過巧妙的查詢建構來實現相同的效果。

方法一:使用 UNION ALL 查詢

一種方法是使用 UNION ALL 查詢,它將多個 SELECT 語句的結果附加在一起。在本例中,我們為每個需要展開的欄位建立一個單獨的 SELECT 語句:

<code class="language-sql">select id, 'a' col, a value
from yourtable
union all
select id, 'b' col, b value
from yourtable
union all
select id, 'c' col, c value
from yourtable</code>
登入後複製

此查詢建立一個新表,其中每一行代表一個列值對。產生的表將具有以下佈局:

ID col value
1 a a1
1 b b1
1 c c1
2 a a2
2 b b2
2 c c2

方法二:使用 CROSS JOIN

另一種方法是使用 CROSS JOIN,它產生多個表的笛卡爾積。將 yourtable 與包含列名的表格結合起來,我們可以實現以下目標:

<code class="language-sql">select t.id,
  c.col,
  case c.col
    when 'a' then a
    when 'b' then b
    when 'c' then c
  end as data
from yourtable t
cross join
(
  select 'a' as col
  union all select 'b'
  union all select 'c'
) c</code>
登入後複製

此查詢產生的輸出與 UNION ALL 查詢相同,為我們提供了靈活的資料表示,以便進行進一步的分析或資料操作。

透過在 MySQL 中實現這些展開技術,您可以透過將資料重塑為更易於導航的格式來有效地從資料中提取有意義的見解。

以上是如何在 MySQL 中逆透視列來重構資料?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板