[英]How to write this query in jooq
select sum(x.amt) from (select amount as amt from user_transactions where TransactionTimeStamp > '2022-03-09') as x
我无法将此 sql 查询转换为 jooq 查询。 请帮忙
您可以像这样创建派生表:
// Assuming this static import, as always:
import static org.jooq.impl.DSL.*;
Table<?> x = table(
select(USER_TRANSACTIONS.AMOUNT)
.from(USER_TRANSACTIONS)
.where(USER_TRANSACTIONS.TRANSACTIONTIMESTAMP.gt(
LocalDate.parse("2022-03-09")
))
).as("x");
然后像这样使用它:
ctx.select(sum(x.field(USER_TRANSACTIONS.AMOUNT)))
.from(x)
.fetch();
FILTER
的替代方法 jOOQ 支持标准的 SQL FILTER
子句,也可以为 SQL 服务器模拟它:
ctx.select(sum(USER_TRANSACTIONS.AMOUNT).filterWhere(
USER_TRANSACTIONS.TRANSACTIONTIMESTAMP.gt(LocalDate.parse("2022-03-09"))
))
.from(USER_TRANSACTIONS)
.fetch();
如果您在单个查询中聚合几件事,例如使用不同的过滤器,这将特别有用
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.