MySQL 轉制表(Pivot Table)是指將行轉為列,列轉為行。這種技術在數據分析和數據處理領域非常常見,可以把非規范化的數據結構轉換為規范化的數據結構。本文將介紹如何通過 MySQL 來實現轉制表。
在 MySQL 中,轉制表可以通過使用 SELECT 語句和 CASE WHEN 語句來實現。下面是一個示例:
SELECT name, MAX(CASE WHEN subject = 'Math' THEN score END) AS Math, MAX(CASE WHEN subject = 'English' THEN score END) AS English, MAX(CASE WHEN subject = 'History' THEN score END) AS History FROM scores GROUP BY name;
在這個 SELECT 語句中,我們查詢了一張名為 scores 的表,其中包含每個學生的姓名、科目和得分。然后,使用 GROUP BY 子句將結果根據姓名進行分組,這樣我們可以獲取每個學生的所有成績。
接下來,我們使用 CASE WHEN 語句將每個學生的成績根據科目進行分類。例如,我們需要將 Math 的成績放在新的 Math 列中,而將 English 的成績放在新的 English 列中。
最后,我們使用 MAX 函數將每個學生的相同科目的成績進行聚合,從而將行轉換為列。這樣,我們就可以獲得一個規范化的表格,其中每個學生都有一個單獨的行,并且每個科目都有一個單獨的列。
總之,轉制表是一項非常有用的技術,可以幫助我們輕松地將非規范化的數據結構轉換為規范化的數據結構。在 MySQL 中,我們可以使用 SELECT 子句和 CASE WHEN 語句來實現這個過程。