英文:
Returning sum of row values and row count
问题
我有一个查询,用于返回表列中值的总和。我想要现在还返回行数。
以下是我的当前查询的代码:
db.select(DSL.coalesce(DSL.sum(AMOUNT), 0).cast(Long::class.java))
.from(this.innerJoin(ACCOUNT).on(ACCOUNT_ID.eq(ACCOUNT.ID)))
.where(ACCOUNT.ACCOUNT_ID.eq(accId))
.awaitSingle()
.value1()
英文:
I have a query to return the sum of the values in a table column. I'd like to now also return the row count.
Here is what my current query looks like:
db.select(DSL.coalesce(DSL.sum(AMOUNT), 0).cast(Long::class.java))
.from(this.innerJoin(ACCOUNT).on(ACCOUNT_ID.eq(ACCOUNT.ID)))
.where(ACCOUNT.ACCOUNT_ID.eq(accId))
.awaitSingle()
.value1()
答案1
得分: 1
你可以只需在相同的 jOOQ 查询中添加另一个聚合函数,例如:
val (sum, count) =
db.select(
coalesce(sum(AMOUNT), 0).coerce(Long::class.java),
count())
.from(this.innerJoin(ACCOUNT).on(ACCOUNT_ID.eq(ACCOUNT.ID)))
.where(ACCOUNT.ACCOUNT_ID.eq(accId))
.awaitSingle()
这个答案假设通常的 import org.jooq.impl.DSL.*
。
英文:
You can just add another aggregate function to the same jOOQ query, e.g.:
val (sum, count) =
db.select(
coalesce(sum(AMOUNT), 0).coerce(Long::class.java),
count())
.from(this.innerJoin(ACCOUNT).on(ACCOUNT_ID.eq(ACCOUNT.ID)))
.where(ACCOUNT.ACCOUNT_ID.eq(accId))
.awaitSingle()
This answer assumes the usual import org.jooq.impl.DSL.*
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论