#postgresql #crosstab #postgresql-13 #postgres-crosstab
Вопрос:
Я все еще новичок в PostgreSQL и хотел бы сделать перекрестную таблицу из этой таблицы здесь: исходная таблица
Я хотел бы сделать перекрестную таблицу, чтобы она выглядела так (создана с помощью ручной вставки, без перекрестной таблицы): целевой результат
Это была моя попытка сделать перекрестную таблицу исходной таблицы, однако я понятия не имею, как включить столбец «total_y».:
select * from crosstab(
'SELECT name, date, attendance
FROM table_test
ORDER BY 1
') as ct (
"name" text,
"2021-04-03" text,
"2021-03-04" text,
"2021-03-05" text)
Результат с приведенным выше кодом: результат (обратите внимание, что нет столбца «total_y»).
Я попытался добавить столбец «total_y»
select * from crosstab(
'SELECT name, date, attendance, total_y
FROM table_test
ORDER BY 1
') as ct (
"name" text,
"2021-04-03" text,
"2021-03-04" text,
"2021-03-05" text,
"total_y" integer)
Однако он вернет ошибку:
ERROR: invalid source data SQL statement
DETAIL: The provided SQL must return 3 columns: rowid, category, and values.
SQL state: 22023
Как мне исправить запрос перекрестной таблицы, чтобы он возвращал нужную таблицу? Как показано на рисунке «целевой результат»?
Большое вам спасибо за помощь!