如何在 jooq 中编写此查询

发布于 2025-01-12 22:22:51 字数 178 浏览 0 评论 0原文

select sum(x.amt) from (select amount as amt from user_transactions where TransactionTimeStamp > '2022-03-09') as x

我无法将此 sql 查询转换为 jooq 查询。请帮忙

select sum(x.amt) from (select amount as amt from user_transactions where TransactionTimeStamp > '2022-03-09') as x

I am not able to convert this sql query to jooq query. Please help

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

不必了 2025-01-19 22:22:51

创建派生表

您可以创建派生表< /a> 像这样:

// 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 过滤 子句,并且也可以为 SQL Server 模拟它:

ctx.select(sum(USER_TRANSACTIONS.AMOUNT).filterWhere(
       USER_TRANSACTIONS.TRANSACTIONTIMESTAMP.gt(LocalDate.parse("2022-03-09"))
   ))
   .from(USER_TRANSACTIONS)
   .fetch();

如果您是 在单个查询中聚合多个内容,例如使用不同的过滤器

Creating derived tables

You can create derived tables like this:

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

And then use it like this:

ctx.select(sum(x.field(USER_TRANSACTIONS.AMOUNT)))
   .from(x)
   .fetch();

Alternative using FILTER

jOOQ supports the standard SQL FILTER clause, and can emulate it also for SQL Server:

ctx.select(sum(USER_TRANSACTIONS.AMOUNT).filterWhere(
       USER_TRANSACTIONS.TRANSACTIONTIMESTAMP.gt(LocalDate.parse("2022-03-09"))
   ))
   .from(USER_TRANSACTIONS)
   .fetch();

This is especially useful if you're aggregating several things in a single query, e.g. with different filters

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文