我有一个这样的表在我的Postgres BD:的PostgreSQL怎么行转换为colums
CREATE TABLE foo(id,type,date,value) AS
SELECT *
FROM (VALUES
(11::smallint,'A','2016-06-06 19:00:00'::timestamp,81),
(11,'A','2016-06-06 20:00:00',70),
(11,'A','2016-06-06 21:00:00',35),
(11,'B','2016-06-06 19:00:00',2),
(11,'B','2016-06-06 20:00:00',0),
(11,'B','2016-06-06 21:00:00',0)
) as f;
这里是数据,
id | type | date | value
----+------+---------------------+------
11 | A | 2016-06-06 19:00:00 | 81
11 | A | 2016-06-06 20:00:00 | 70
11 | A | 2016-06-06 21:00:00 | 35
11 | B | 2016-06-06 19:00:00 | 2
11 | B | 2016-06-06 20:00:00 | 0
11 | B | 2016-06-06 21:00:00 | 0
而且这是我想要得到的结果:
ID DATE A B
-----|----------------------|----|---
11 | 2016-06-06 19:00:000 | 81 | 2
11 | 2016-06-06 20:00:000 | 70 | 0
11 | 2016-06-06 21:00:000 | 35 | 0
任何人都知道什么是我得到这个结果的查询?
感谢@sagi,有用!!!但问题是我有很多类型,而且我很难用它们来进行查询。 – dbz
然后你应该使用'Pivot',但是要告诉你实话,如果它不那么多,(20左右)我更喜欢使用这个版本。 – sagi
他们就像800个类型......它更好地使用枢轴在我的情况? – dbz