如何在不编写函数的情况下在 postgresql 中透视或交叉表?

sam*_*and 4 postgresql pivot crosstab

我有一个看起来像这样的数据集:

必须旋转

我想将所有co值汇总在一行中,因此最终结果如下所示:

在此处输入图片说明

看起来很容易,对吧?只需crosstab按照本答案中的建议使用 编写查询。问题是这要求我CREATE EXTENSION tablefunc;和我没有对我的数据库的写访问权限。

谁能推荐一个替代方案?

Luk*_*zda 10

条件聚合:

SELECT co,
  MIN(CASE WHEN ontology_type = 'industry' THEN tags END) AS industry,
  MIN(CASE WHEN ontology_type = 'customer_type' THEN tags END) AS customer_type, 
  -- ...
FROM tab_name
GROUP BY co
Run Code Online (Sandbox Code Playgroud)