Postgres 语法内部连接更新和临时 table

Postgres Syntax inner join update and temp table

我正在使用 pg 9.3,我想知道如何在一条语句中做到这一点,甚至可能没有临时 table。这对我来说似乎有点混乱。

create temp table docUse (
docid int primary key, 
name text, cnt int, 
mindate timestamp, 
maxdate timestamp);

insert into docuse (docid,cnt) 
    select documenttypeID, count(documenttypeID) from AllDocs group by documenttype;

update docuse set name = DocName from documenttype where documenttypeid = docid;

update docuse 
set mindate = _minDate, maxdate = _MaxDate from(
     Select min(Creation_Date) _mindate, max(Creation_Date) _MaxDate, docid did
    from AllDocs inner join docuse on documenttypeid = docid group by docid
) foo where did = docid;

示例 return 行看起来像

761,Invoice,598236,1/1/2000 12:00:00 am, 2/19/2016 3:15:54 pm

尝试:

insert into docuse (docid,cnt, mindate, maxdate, name  ) 
SELECT x.documenttypeID, x.cnt, x.mi, x.mx,
       ( SELECT DocName d from documenttype where d.documenttypeid = x.documenttypeID)
FROM ( 
    select documenttypeID, 
           count(documenttypeID) as cnt,
           min(Creation_Date) as mi,
           max(Creation_Date) as mx
    from AllDocs a
    group by documenttype
) x;