Created
November 13, 2023 17:54
-
-
Save luanlmd/f8d3c9275c5555c4030c621e98bf5a95 to your computer and use it in GitHub Desktop.
Drizzle get relation count
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// final query | |
public async getInfluencersWithReferrals() { | |
return db | |
.select({ user: userSchema, referralsCount: sql<number>`count(${referralSchema.id})` }) | |
.from(userSchema) | |
.innerJoin(referralSchema, eq(userSchema.id, referralSchema.userId)) | |
.groupBy(userSchema.id); | |
} | |
// reverse query | |
public async groupedReferralsWithUser() { | |
return db | |
.select({ | |
userId: referralSchema.userId, | |
count: sql<number>`count(${referralSchema.userId})`, | |
user: userSchema, | |
}) | |
.from(referralSchema) | |
.leftJoin(userSchema, eq(referralSchema.userId, userSchema.id)) | |
.groupBy(referralSchema.userId) | |
.having(({ count }) => gt(count, 1)); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment