SQL的的行列倒置已经不是新知识了,但在博主的技术咨询期间,仍发现其实有很多人并不了解这块,所以在此专门写一篇博客记录。本文将以Mysql为例,并以数据采集指标信息获取为例子。在下面的例子,你可以在sqlfiddle运行。
首先我们需要创建数据库Schema:
CREATE TABLE Chart
(`createTime` DateTime, `kpi` varchar(30), `field` varchar(30), `value` double);
INSERT INTO Chart
(`createTime`,`kpi`, `field`, `value`)
VALUES
("2015-02-01 12:00:00", 'disk', 'disk', 20),
("2015-02-01 12:15:00", 'disk', 'disk', 30),
("2015-02-01 12:20:00", 'disk', 'disk', 25),
("2015-02-01 12:30:00", 'disk', 'disk', 25),
("2015-02-01 12:35:00", 'disk', 'disk', 25),
("2015-02-01 12:40:00", 'disk', 'disk', 25),
("2015-02-01 12:00:00", 'disk', 'disk-all', 20),
("2015-02-01 12:20:00", 'disk', 'disk-all', 30),
("2015-02-01 12:25:00", 'disk', 'disk-all', 25),
("2015-02-01 12:30:00", 'disk', 'disk-all', 25),
("2015-02-01 12:35:00", 'disk', 'disk-all', 25),
("2015-02-01 12:40:00", 'disk', 'disk-all', 25),
("2015-02-01 12:40:00", 'cpu', 'cpu-all', 25),
("2015-02-01 12:40:00", 'cpu', 'cpu', 25)
;
在这里字段分别代表:createTime = 数据采集时间,kpi = 数据采集指标,field = 作为指标的小类(一个kpi可以包含多个field),value = 采集的数据
SQL 行列倒置
最新推荐文章于 2024-04-23 16:15:02 发布