У меня есть таблица, как это в моем 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