JOOQ 选择与组不同的计数

jmc*_*c42 3 java sql jooq

我正在尝试通过选择计算一组返回的记录数。

这个 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”?

詹姆士

Luk*_*der 6

写这个:

// 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)

您缺少的方法是: