需要帮助postgresql交叉表查询

时间:2014-07-28 07:08:27

标签: sql postgresql select crosstab

我有两个简单的查询,我从PostgreSQL获取主题为两个记录(1列)。

select count(*) from root.str
union all
select count(*) from back.str0

返回如下内容:

+===+
|103|
+===+
|98 |
+===+

但我想要这样的事情:

+===+===+
|103|98 |
+===+===+

我已尝试过此操作,但Postgres在crosstab()函数处引发错误,并表示该函数不存在。

select * from crosstab(
   'select count(*) from root.str
    union all
    select count(*) from back.str0'::text) as (int r,int e)

2 个答案:

答案 0 :(得分:2)

我不明白为什么你需要交叉表模块:

select (select count(*) from root.str) as str_count,
       (select count(*) from back.str0) as str0_count;

答案 1 :(得分:1)

您需要安装提供crosstab()功能的additional module tablefunc

考虑这个相关的答案,并附有说明和更多建议:

另外,@ a_horse写道......