我正在尝试通过选择计算一组返回的记录数。
这个 stackoverflow 问题很好地总结了不同的方法:
我想使用以下解决方案:
SELECT DISTINCT COUNT(*) OVER () AS TotalRecords
FROM table
GROUP BY column
Run Code Online (Sandbox Code Playgroud)
如何将其转换为 JOOQ 查询?
这就是我在 JOOQ 中执行简单计数查询的方式:
Record record = jooq.select( TABLE.COLUMN.count() ).from( TABLE).fetchOne();
return record.into( Long.class );
Run Code Online (Sandbox Code Playgroud)
是否可以在 JOOQ 语法中表达“DISTINCT COUNT(*) OVER () AS TotalRecords”?
詹姆士
写这个:
// Assuming this static import
import static org.jooq.impl.DSL.*;
int totalRecords =
jooq.selectDistinct(count().over().as("TotalRecords"))
.from(TABLE)
.groupBy(TABLE.COLUMN)
.fetchOneInto(int.class);
Run Code Online (Sandbox Code Playgroud)
您缺少的方法是:
DSLContext.selectDistinct()DSL.count()WindowOverStep.over()(WindowOverStep作为 返回的类型的超类型DSL.count())| 归档时间: |
|
| 查看次数: |
3318 次 |
| 最近记录: |