我有两张桌子。
第一张表是字典:
test_1=> select * from first;
id | name
----+-------
1 | name1
2 | name2
3 | name3
引用first
表的第二个表:
test_1=> select * from second;
id | number | first_id
----+--------+----------
1 | 1 | 2
2 | 1 | 3
3 | 1 | 2
4 | 2 | 3
5 | 2 | 2
6 | 3 | 3
现在我使用pivot来显示结果:
SELECT *
FROM crosstab('SELECT
number, name, sum(number)::integer
FROM first
LEFT JOIN second ON second.first_id = first.id
GROUP BY 2, 1
ORDER BY 1, 2', $$SELECT unnest('{name1,name2,name3}'::text[])$$) AS ta (
number INTEGER,
name1 INTEGER,
name2 INTEGER,
name3 INTEGER
);
结果:
number | name1 | name2 | name3
--------+-------+-------+-------
1 | | 2 | 1
2 | | 2 | 2
3 | | | 3
没关系。
但是现在我必须手动定义列 - name1, name2, name3...
,但列是表单字典表,可以更改。
所以我的问题是 - 有可能让列动态转动吗?