У меня есть мнение, возвращающих таблицу, как это:PostgreSQL. Получение значения из строк и изменить строки в столбцы
cat_name | Jan | Feb | Mar | ... | YEAR
student | 0 | 23 | 12 | ... | 2013
student | 10 | 2 | 8 | ... | 1999
professor| 12 | 9 | 3 | ... | 2015
teacher | 3 | 8 | 5 | ... | 2015
мне нужно сделать вид, возвращающих л, как это:
cat_name | 1999 | 2013 | 2015 | ...
student | 20 | 35 | 0 | ...
professor| 0 | 0 | 24 | ...
teacher | 0 | 0 | 16 | ...
Sum строки и выберите distinct cat_name:
SELECT cat_name, "YEAR",
COALESCE("Jan",0)+COALESCE("Feb",0)+COALESCE("Mar",0)+
... +COALESCE("Dec",0) AS sum
FROM view
GROUP BY "YEAR", cat_name, sum;
Есть ли способ сделать имена столбцов «YEAR»? Количество лет не фиксировано и количество cat_name тоже. Как я могу сделать некоторый список с да (от select distinct "YEAR" from view
), например, и использовать эти годы вместо 2013, 2014 ... в CASE WHEN "YEAR" = 2014
?
Результат выбора имеет фиксированное количество столбцов - независимо от данных таблицы. – jarlh