On Wednesday, 19 August 2020 15:09, David G. Johnston <david.g.johnston@xxxxxxxxx> wrote: > On Wednesday, August 19, 2020, Laura Smith <n5d9xq3ti233xiyif2vp@xxxxxxxxxxxxx> wrote: > > > Hi, > > > > Let's say we've got a fairly basic table : > > > > create table networks ( > > lan_id text not null, > > net_id text not null, > > port_id text not null > > ); > > create index net_uniq on networks(lan_id,port_id); > > > > The query conundrum I am facing is that I need to add metadata to the output of the query that indicates the count of ports a given net has on a lan. > > > > So, for example, given : > > insert into networks(lan_id,net_id,port_id) values('L1','N1,'P1'); > > insert into networks(lan_id,net_id,port_id) values('L1','N1,'P2'); > > > > The metadata count would be 1, 2 (because 'N1' has 'P1' and 'P2' on 'L1'). > > > > Is there a sensible way to query this without stressing out Postgres too much ? I'm guessing a CTE of some sort ? > > Suggest you provide your desired output in table format, and show “the query” that you mention. > > David J. If I knew what "the query" was, I wouldn't be posting here. ;-p The only thing I've managed to come up with so far is adding count(*) over (partition by digest(lan_id||net_id,'sha256')) to my query, but that obviously gives the total count, not the ongoing incremental count.