我知道这个问题有一个显而易见的答案,但我就像一个试图记住如何编写查询的傻瓜。我在Postgresql中有以下表格结构:

CREATE TABLE public.table1 (
  accountid BIGINT NOT NULL,
  rpt_start DATE NOT NULL,
  rpt_end DATE NOT NULL,
  CONSTRAINT table1_pkey PRIMARY KEY(accountid, rpt_start, rpt_end)
)
WITH (oids = false);

CREATE TABLE public.table2 (
  customer_id BIGINT NOT NULL,
  read VARCHAR(255),
  CONSTRAINT table2 PRIMARY KEY(customer_id)
)
WITH (oids = false);

查询的目的是显示accountid的结果集、表1中accountid的计数和从表2中读取的结果集。联接在table1.accountid=table2.customer\u id上。
结果集应如下所示:
accountid     count     read
1234          2         100
1235          9         110
1236          1         91

count列反映表1中每个accountid的行数。read列是表2中与同一accountid关联的值。

最佳答案

select accountid, "count", read
from
    (
        select accountid, count(*) "count"
        from table1
        group by accountid
    ) t1
    inner join
    table2 t2 on t1.accountid = t2.customer_id
order by accountid

关于postgresql - 将两个表与第一个表的计数连接起来,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13755674/

10-11 17:22