溫馨提示×

mysql怎么把行數(shù)據(jù)變?yōu)榱?/h1>
小億
286
2023-11-10 18:49:26
欄目: 云計算

在MySQL中,可以使用PIVOT操作將行數(shù)據(jù)轉換為列。以下是一種常見的方法:

首先,創(chuàng)建一個包含需要轉換的數(shù)據(jù)的表。假設我們有一個名為data_table的表,包含三個字段:idcategoryvalue。

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語句和聚合函數(shù)將行數(shù)據(jù)轉換為列。在這個例子中,我們將category字段的值作為列名。使用SUM函數(shù)對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函數(shù)來聚合每個category的值,并使用CASE語句將對應的值放在正確的列中。在GROUP BY子句中,我們按id分組。

這樣,我們就成功將行數(shù)據(jù)轉換為列數(shù)據(jù)。

0