0

我有一个表格以下列格式存储矩阵信息:

CREATE TABLE "column" (
  id         serial primary key,
  name       varchar
);

CREATE TABLE matrix (
  id         serial primary key,
  column_id  integer references "column",
  "row"      integer,
  data       varchar
);

使用样本数据:

INSERT INTO "column"(name) VALUES ('column1'), ('column2'), ('column3'), ('column4'), ('column5');
INSERT INTO matrix(column_id, "row", data) VALUES (1, 1, '1, 1'), (1, 2, '1, 2'), (1, 3, '1, 3'), (1, 4, '1, 4'), (1, 5, '1, 5'), (2, 1, '2, 1'), (2, 2, '2, 2'), (2, 3, '2, 3'), (2, 4, '2, 4'), (2, 5, '2, 5'), (3, 1, '3, 1'), (3, 2, '3, 2'), (3, 3, '3, 3'), (3, 4, '3, 4'), (3, 5, '3, 5');

以矩阵形式表示它的最有效方法是什么?

column1 | column2 | column3 | column4 | column5
-----------------------------------------------
1, 1    | 1, 2    | 1, 3    | 1, 4    | 1, 5
2, 1    | 2, 2    | 2, 3    | 2, 4    | 2, 5
3, 1    | 1, 2    | 3, 3    | 3, 4    | 3, 5
4

1 回答 1

1

您似乎想要某种交叉表。根据您使用的 postgres 版本,它可能已经内置。如果我是正确的,它是从 9.0 版内置的,您可以在 8.4 版中添加交叉表模块。

查看crosstab函数文档以获取更多信息。

于 2013-05-22T10:08:34.610 回答