如何在 jOOQ 中的另一个 CTE 中重用一个 CTE

2023-11-30

在 jOOQ 中,我在以后的 CTE 中重用了 CTE。我正在尝试按年份和学校汇总学生的完成记录。我正在使用 jOOQ 3.11.2 和 postgres 9.4。

我有有效的 SQL 代码。但是在 jOOQ 中,我返回了空值。

这似乎是我如何在以后的 CTE 中重新使用一个 CTE 的问题。

一开始我以为可能是count()的使用有问题。从手册来看,count() 的使用似乎是正确的。作为测试,我删除了查询中对 count() 的所有引用,但仍然出现相同的错误。

我找不到在 jOOQ 中重用或链接 CTE 的示例。在 SQL 中很简单,如下所示:SQL - 使用一个 CTE 到另一个 CTE 的引用但我在 jOOQ 中还没有掌握它的窍门。

当在 Intellij 上以调试模式运行时,我看到一个错误select()无法在第二个 CTE 中评估语句。

Cannot evaluate org.jooq.impl.SelectImpl.toString()

这是一个展示我正在做的事情的最小示例。

 CommonTableExpression<Record4<String, String, String, Year>> cteOne = name("CteOne")
    .fields("SCHOOL","STUDENT_NAME", "COURSE_COMPLETED", "YEAR_COMPLETED")
    .as(
            select( a.NAME.as("SCHOOL")
                    , a.STUDENT_NAME
                    , a.COURSE_DESCRIPTION.as("courseCompleted"),
                    , a.YEAR_COMPLETED 
                    )
                    .from(a)
                    .orderBy(a.YEAR_COMPLETED)
    );

CommonTableExpression<Record3<String, Year, Integer >> cteCounts = name("cteCounts")

    .fields("SCHOOL", "YEAR_COMPLETED", "NUM_COMPLETED" )

    .as( with(cteOne)
                    .select(
                            , field(name("cteOne","SCHOOL"), String.class)
                            , field(name("cteOne","YEAR_COMPLETED"), Year.class)
                            , count().as("NUM_COMPS_LOGGED")
                    )
                    .from(cteOne)
                    .groupBy(
                            field(name("cteCompsList","YEAR_COMPLETED"), Year.class)
                          , field(name("cteOne","SCHOOL"), String.class)
                    )
                    .orderBy(
                            field(name("cteCompsList","YEAR_COMPLETED"), Year.class)
                          , field(name("cteOne","SCHOOL"), String.class)
                    )
    );

有人可以指出我在这方面的正确方向吗?


就像在查询的普通 SQL 版本中一样,您的cteCounts不应该有with(cteOne) clause:

WITH 
  cteOne (columns...) AS (select...),
  cteCounts (columns...) AS (select referencing cteOne, no "with cteOne" here...)
SELECT ...
FROM ...

删除它,你的查询应该没问题

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 jOOQ 中的另一个 CTE 中重用一个 CTE 的相关文章

  • 连接到 SQL Server 数据库 C#-WinForms

    我正在制作一个桌面应用程序 我希望用户必须登录才能充分使用该程序 我已经在 www winhost com 我的网站的托管位置 上创建了一个数据库 但现在我不知道该怎么办 我一直在使用 google 和 msdn 我想知道如何以编程方式将新
  • 如何在oracle日志中打印http请求

    我们正在使用以下方式调用外部 URLUTL HTTP方法并设置 HTTP 标头 例如basic authentication keep alive content soap action所以我需要打印我设置为标题的内容 DBMS OUTPU
  • 覆盖乔达一周的第一天?

    是否有可能覆盖乔达弱的第一天sunday 因为 Joda 使用Monday作为一周的第一天 如果有办法的话 谁能解释一下 我在 SOF 中提到了以下主题 乔达时间 一周的第一天 https stackoverflow com questio
  • 相对重力

    我最近开始使用jMonkey引擎 这非常好 但我在尝试实现相对重力时陷入了困境 我想让行星彼此围绕轨道运行 不一定是完美的圆形轨道 取决于速度 所以每个对象都应该影响其他对象 我现在拥有的 关闭全球重力 bulletAppState get
  • java springrabbit - 优雅地拒绝消息

    我有以下侦听器方法 Override public void onMessage Message message Channel channel try do something bad catch Exception e try long
  • 是否有适用于 Java 的 CalDAV 客户端库? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我想使用 CalDAV 协议与我的日
  • java内存不足然后退出

    我有一个必须分析大文件的软件 限制输入或提供无限内存都不是一个选择 所以我必须忍受飞行的 OOME 因为 OOME 只杀死线程 所以我的软件运行在一些糟糕的状态 从外面看一切都很好 因为进程正在运行 但在内部却是脑死亡 我想拔掉它的插头 但
  • 用二进制数、常规数字和格雷编码填充矩阵

    我有一个包含 1 s 或 0 s 的矩阵 用于创建二进制数 其宽度为n 对于 n 2 和 n 3 它看起来像 00 000 01 001 10 010 11 011 100 101 110 111 等等 现在我正在使用以下代码来生成它 in
  • SFTP Java - 管道关闭 Jsch 异常

    我正在研究一种 java 方法 将文件从一个位置复制到另一个远程位置 我的代码如下 我尝试使用jsch 0 1 42 0 1 50 0 1 54 public static void processFiles ArrayList
  • 在 Hibernate 的 XML 配置文件中指定默认值

    我通过映射配置文件配置 Hibernate
  • Spring Boot 中的服务限流能力

    有什么办法可以实现Spring中其余服务的服务限制能力 特别是Spring boot 这里的期望是 我的服务暴露于外界 目前每秒 分钟的服务调用数量没有限制 我们希望通过设置限制来控制这一点 我有一个替代选项 通过跟踪并发哈希映射或任何缓存
  • Oracle DB & SQL Developer:“错误报告:执行已完成,但有警告” - 如何*查看*该警告?

    我正在设置一个本地 Oracle 11g 数据库 我们已经运行的另一个数据库的克隆 我正在 SQL Developer 中运行一堆生成的 PL SQL 命令 我得到输出 Error starting at line x in command
  • SQL Server 查看主键

    有没有办法在 sql server 中为视图提供主键 我知道在oracle中这是可能的 我不关心更新它的只读视图 但其他人正在 ms access 中使用它 所以我希望显示我知道正确的约束 是的 您可以创建一个索引视图 http msdn
  • 使用 SimpleDateFormat、Java 进行错误的日期解析

    我需要使用日期模式 yyyy MM dd 解析输入字符串中的日期 如果日期采用任何其他格式 则抛出错误 这是我解析日期的代码 private void validateDate throws MyException Date parsedD
  • 使用递归 CTE 遍历父/子树?

    我被 cte 困住了 我想要一个查询 其中第一个父级为空 上一个父级的子级将成为下一个父级的父级 依此类推 WITH RESULT PARENT CHILD TNAME LEVEL AS anchor SELECT E PARENT GEN
  • 使用替换但不使用根元素的 Jaxb 继承

    我正在浏览布莱斯的博客http blog bdoughan com 2010 11 jaxb and inheritance using substitution html http blog bdoughan com 2010 11 ja
  • CreateProcess error=206,运行 gwtCompile 时文件名或扩展名太长

    我的应用程序是一个 springboot gradle 应用程序 我的应用程序的一部分涉及使用 gradle 进行遗留 gwt 编译 它工作正常 但今天当我运行下面的 gradle 任务时 它显示 CreateProcess error 2
  • CS0246 找不到类型或命名空间名称“ErrorViewModel”(您是否缺少 using 指令或程序集引用?)

    我收到 CS0246 错误代码 我正在做一个 MVC net core 项目 我正在将 Razor 合并到我的 C 代码中 我在进行构建时收到此错误 我在最后一行收到错误 有人能帮我解决这个问题吗 global Microsoft AspN
  • 如何将元素添加到通用集合

    我想知道如何将专用对象添加到通用集合中 我正在使用以下代码 Collection
  • Spring Boot 2 中的 401 代替 403

    With 春季启动 https projects spring io spring boot 1 5 6 发布我能够发送 HTTP 状态代码401代替403如中所述如果请求未经身份验证的uri 如何让Spring Security响应未经授

随机推荐

  • (如何)在 boost 几何体中创建自己的多边形类型并使用 multi_polygon 类型?

    我目前正在尝试用一些扩展 boost geometry 多边形 附加信息 然而编译器启动 include
  • beautiful print 嵌套 矢量图

    我有以下代码来漂亮地打印通用向量 print a vector template
  • 在 Unity3d 中使用 Android 上的音量按钮

    我正在尝试在 Android 上的 unity3d 游戏中使用音量按钮 不幸的是 我看不到任何与卷映射为 KeyCode 相关的内容 因此在我看来 Unity3d 中不存在此功能 有没有一种更隐蔽的方法 有没有办法解决这个问题 其应用是在按
  • PHP 的隐藏功能? [关闭]

    很难说出这里问的是什么 这个问题模棱两可 含糊不清 不完整 过于宽泛或言辞激烈 无法以目前的形式合理回答 如需帮助澄清此问题以便重新打开 访问帮助中心 Locked 这个问题及其答案是locked因为这个问题是题外话 但却具有历史意义 目前
  • PHP中使用jqgrid上传文件

    我正在尝试使用 jqgrid 在 Zend Framework 项目中 实现文件上传 jqgrid 允许您创建 文件 类型的输入字段 但不启用 ENCTYPE multipart form data 创建者建议使用另一个插件来处理文件上传
  • 在 Spring Boot 3.2 中注册 Geolatte Jackson 模块

    希望能够反序列化几何几何在 Spring Boot 3 2 中通过注册来指向杰拉特 JSON模块成功并使用其反序列化器 我可以手动注册GeolatteGeomModule在控制器中 但没有让 Spring Boot 自动拾取它 Entity
  • Spring中实现授权

    我有一个用例 其中我只需执行授权部分 JWT 令牌由另一个服务生成 我的服务将仅使用该令牌 该令牌在其自定义声明中包含数据 在我的 Spring Boot 应用程序中 我只想在允许用户访问任何 API 之前验证该令牌是否有效 在所有答案中
  • Java:Linux 中的图形

    是否必须在 Linux 机器上安装 X Windows 才能使 Java 显示全屏图形 那么 全屏图形 有点模糊 不管怎样 显然正在努力从 Java 访问帧缓冲区 帧缓冲工具包 该项目的目标是生成一个代码体 该代码体是 AWT 和 Swin
  • 将mysql结果导出到excel

    我找到了一个小脚本 可以将信息导出到 xls 文件 但我似乎无法让它工作 原始代码可以在这里找到 这是我的代码 Query Database query SELECT FROM db clients WHERE published 1 AN
  • 您可以使用映射来创建没有包装器的实例吗?

    在Python中 你可以将类的名称作为参数给出map为了创建该类的实例 class Point object def init self x y self x x self y y coords 1 2 3 4 pts map Point
  • C++:按值传递对象的原因

    在Java中 所有包含适当对象的变量实际上都是引用 即指针 因此 使用这些对象作为参数的方法调用始终是 通过引用 调用修改对象状态的方法也会影响原始对象 在调用方 C 则不同 这里的参数可以按值传递 也可以按引用传递 对按值传递的对象调用
  • C 中的 MPI 和多维数组分配

    我尝试使用 MPI Scatter 发送矩阵行 动态分配的 但它只发送一行 在其他行中是垃圾 当我使用静态内存分配时 一切都很好 MPI Init argc argv int matrix matrix stor row rank P MP
  • C++ 重载运算符 == 和 < 之间的区别[重复]

    这个问题在这里已经有答案了 谁能解释一下超载和超载有什么区别 and
  • 有没有办法使用 sql server 2008 数据库将 power bi 报告和仪表板嵌入到 vb.net 或 C# 桌面应用程序中?

    我有一个带有 sql server 2008 数据库的 vb net 桌面应用程序 我目前正在使用 SSRS 来生成报告 但我的客户希望有可视化数据表示 因此我想使用 Power BI 仪表板 那么在 vb net 应用程序中嵌入 powe
  • JavaScript 中的动态变量名称

    I use jQuery 即兴我的应用程序中的提示非常有帮助 但是 要调用即席提示 您需要指定按钮名称及其返回值 如下所示 prompt Example 2 buttons Ok true Cancel false 我真的很想要动态按钮名称
  • ASP MVC3 - 发布后未找到 HttpPost 操作

    我有一个 ASP MVC3 应用程序 它有多个 HttpPost ActionResult 方法 在调试会话期间 这些方法工作正常 但是 当我在浏览器中发布和查看 Web 应用程序时 只有 HttpPost 方法失败 Firebug 显示
  • NHibernate 中的 List、Set 和 Bag

    NHibernate 映射文件中的列表 集合和包有什么区别 每个集合与 NET 集合有何关系 NHibernate 语义 列表 实体的有序集合 允许重复 使用 NETIList在代码中 索引列需要在 NHibernate 中进行映射 Set
  • Apache2 反向代理,通过 OpenID Connect 进行身份验证并通过 ldap 进行授权

    我正在尝试设置一个需要针对 OpenID Connect 身份提供商进行身份验证的反向代理 然后 用户授予反向代理访问其数据的权限 代理后面的某些应用程序只有当用户是特定 LDAP 组的成员时才能访问 遗憾的是 应用程序是转储的 无法自行授
  • 在 Bash 脚本中处理 gcc 警告和输出

    所以我对整个 Bash 脚本场景很陌生 但我正在编写一个脚本来编译目录中的所有 c 文件 我已经通过以下方式成功做到了这一点 for F in c do gcc c Wall o F c F done 一切正常 但我希望输出看起来像 ex1
  • 如何在 jOOQ 中的另一个 CTE 中重用一个 CTE

    在 jOOQ 中 我在以后的 CTE 中重用了 CTE 我正在尝试按年份和学校汇总学生的完成记录 我正在使用 jOOQ 3 11 2 和 postgres 9 4 我有有效的 SQL 代码 但是在 jOOQ 中 我返回了空值 这似乎是我如何