Postgresql 在存储的内部查询上选择多个单独的父项

Postgresql 在存储的内部查询上选择多个单独的父项,postgresql,Postgresql,我有一个相当复杂的子查询,我想用两种方式对它进行分组。我不想调用内部查询两次,比如 select count(*)... field_a from ( select ...complex query ) group by field_a select count(*)... field_b from ( select ...complex query ) group by field_b 我宁愿调用一次内部查询: select count(*)...

我有一个相当复杂的子查询,我想用两种方式对它进行分组。我不想调用内部查询两次,比如

select 
  count(*)...
  field_a
from (
   select ...complex query
)
group by field_a

select 
  count(*)...
  field_b
from (
   select ...complex query
)
group by field_b
我宁愿调用一次内部查询:

select 
  count(*)...
  field_a
from stored results = (
   select ...complex query
)
group by field_a

select 
  count(*)...
  field_b
from stored results = (
   select ...complex query
)
group by field_b

如何实现这一点?

我的背景是SQL Server,但对于这种情况,我要么使用表变量(看起来不像postgresql支持这些变量),要么使用临时表

一旦使用所需的列创建了临时表,您就可以更改
复杂查询
以插入到该tmp表中

插入数据后,您可以根据需要多次查询数据。请记住,您的tmp表不是持久的(因此是临时的),并且在脚本完成后将自动删除。

在#t中选择“复杂查询”,然后在第二个块中,在末尾选择*from#t(使用#t完成时)。。。升降台