在MySQL中,可以使用PIVOT操作將行數據轉換為列。以下是一種常見的方法:
首先,創建一個包含需要轉換的數據的表。假設我們有一個名為data_table
的表,包含三個字段:id
、category
和value
。
CREATE TABLE data_table (
id INT,
category VARCHAR(50),
value INT
);
INSERT INTO data_table (id, category, value)
VALUES
(1, 'A', 10),
(1, 'B', 20),
(1, 'C', 30),
(2, 'A', 40),
(2, 'B', 50),
(2, 'C', 60);
接下來,使用CASE語句和聚合函數將行數據轉換為列。在這個例子中,我們將category
字段的值作為列名。使用SUM函數對value
字段進行聚合。
SELECT
id,
SUM(CASE WHEN category = 'A' THEN value END) AS A,
SUM(CASE WHEN category = 'B' THEN value END) AS B,
SUM(CASE WHEN category = 'C' THEN value END) AS C
FROM data_table
GROUP BY id;
運行以上查詢將得到以下結果:
id | A | B | C |
---|---|---|---|
1 | 10 | 20 | 30 |
2 | 40 | 50 | 60 |
上述查詢使用了SUM函數來聚合每個category
的值,并使用CASE語句將對應的值放在正確的列中。在GROUP BY子句中,我們按id
分組。
這樣,我們就成功將行數據轉換為列數據。