Мне нужно извлекать данные по годам, то есть количество (значения) для года, и оно должно быть в формате, подобном году и количеству (значения)
select *
from crosstab(select id, year, count(values) from table)
as res(id int, year1 int, year2 int, year3 int, year4 int)
Данные в таблице
============================
Id | Year | values
============================
1 | 2015-01-10 | 2
1 | 2015-02-11 | 3
1 | 2016-03-11 | 5
1 | 2017-05-07 | 3
1 | 2014-01-01 | 1
2 | 2014-01-10 | 7
2 | 2015-03-03 | 9
2 | 2016-08-08 | 8
2 | 2017-09-09 | 5
Фактический результат
===============================
id | 2014 | 2015 | 2016 | 2017
===============================
1 | 1 | 5 | 5 |3
2 | 7 | 9 | 8 |5