mysql怎么把行数据变为列

avatar
作者
筋斗云
阅读量:0

在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; 

运行以上查询将得到以下结果:

idABC
1102030
2405060

上述查询使用了SUM函数来聚合每个category的值,并使用CASE语句将对应的值放在正确的列中。在GROUP BY子句中,我们按id分组。

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

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!