我知道这个问题有一个显而易见的答案,但我就像一个试图记住如何编写查询的傻瓜。我在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/