[英]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.