温馨提示×

mysql怎么把行数据变为列

小亿
297
2023-11-10 18:49:26
栏目: 云计算

在MySQL中,可以使用PIVOT操作将行数据转换为列。以下是一种常见的方法:

首先,创建一个包含需要转换的数据的表。假设我们有一个名为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语句和聚合函数将行数据转换为列。在这个例子中,我们将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分组。

这样,我们就成功将行数据转换为列数据。

0