Skip to content

Commit ba55edd

Browse files
author
Uroš Marolt
committed
members query optimizations
1 parent 563834f commit ba55edd

File tree

1 file changed

+17
-14
lines changed

1 file changed

+17
-14
lines changed

backend/src/database/repositories/memberRepository.ts

Lines changed: 17 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -871,14 +871,22 @@ class MemberRepository {
871871
timestamp >= :periodStart and
872872
timestamp < :periodEnd
873873
group by "memberId"),
874-
identities as (select "memberId",
875-
array_agg(distinct platform) as identities,
876-
jsonb_object_agg(platform, usernames) as username
877-
from (select "memberId",
878-
platform,
879-
jsonb_agg(username) over (partition by "memberId", platform) as usernames
880-
from "memberIdentities") ranked
881-
group by "memberId")
874+
identities as (select mi."memberId",
875+
array_agg(distinct mi.platform) as identities,
876+
jsonb_object_agg(mi.platform, mi.usernames) as username
877+
from (select "memberId",
878+
platform,
879+
array_agg(username) as usernames
880+
from (select "memberId",
881+
platform,
882+
username,
883+
"createdAt",
884+
row_number() over (partition by "memberId", platform order by "createdAt" desc) =
885+
1 as is_latest
886+
from "memberIdentities" where "tenantId" = :tenantId) sub
887+
where is_latest
888+
group by "memberId", platform) mi
889+
group by mi."memberId")
882890
select m.id,
883891
m."displayName",
884892
i.username,
@@ -1161,15 +1169,10 @@ with member_tags as (select mt."memberId",
11611169
and m."deletedAt" is null
11621170
and o."tenantId" = :tenantId
11631171
and o."deletedAt" is null
1164-
group by mo."memberId"),
1165-
identities as (select "memberId",
1166-
jsonb_object_agg(platform, username) as username
1167-
from "memberIdentities"
1168-
group by "memberId")
1172+
group by mo."memberId")
11691173
select count(m.id) as "totalCount"
11701174
from members m
11711175
inner join "memberActivityAggregatesMVs" aggs on aggs.id = m.id
1172-
inner join identities i on m.id = i."memberId"
11731176
left join member_tags mt on m.id = mt."memberId"
11741177
left join member_organizations mo on m.id = mo."memberId"
11751178
where m."deletedAt" is null

0 commit comments

Comments
 (0)