当前位置: 首页 > 知识库问答 >
问题:

在Oracle中Hibernate HQL GroupBy

王子明
2023-03-14
select c from Cat c
 left join c.kittens k
 where (c.location= 1 OR c.location = 2)
 and (i.activo = 1)
 group 
 by c.id,
 c.name,
 c.fulldescription,
 c.kittens
 order by count(e) desc

共有1个答案

甄飞飙
2023-03-14

HQLGroupBy是一个严重问题,因为如果在GroupBySelect字段列表中指定对象,行为是不同的。在groupby中只考虑了id字段,但在选择字段列表中考虑了所有字段。

因此您可以使用带有groupby的子查询来仅返回对象的id,这样结果就成为主查询的输入,如下所示。

注意,有一些别名表(i和e)没有定义,所以这个查询不能工作,但您知道是固定的。

select c2 from Cat c2
where c2.id in (
  select c.id from Cat c
  left join c.kittens k
  where (c.location= 1 OR c.location = 2)
  and (i.activo = 1) <-- who is i alias??
  group by c.id)
order by count(e) desc <-- who is e alias???
 类似资料:
  • 问题内容: 有没有一种简单的方法可以在Oracle中使用JSON?我有一个经常用于调用Web服务的标准过程,JSON是我在Web开发上下文中熟悉的一种格式,但是在存储过程中使用JSON的最佳方法是什么?例如,从URI中获取CLOB响应,将其转换为JSON对象并从中获取值? 作为参考,这是我用来获取URL的过程 然后测试 (我知道googleapi将允许xml响应,但我经常使用其他一些默认为JSON

  • 问题内容: 我想创建一个在不从现有的表中选择,而是具有插入到它的数据。当前,我正在创建一个表,然后在完成后将其删除。有没有一种方法可以有效地创建相同的对象?这是我当前的代码: 问题答案: 您可以通过从对偶中选择日期值并将它们结合在一起来创建公用表表达式(CTE,子查询分解等)。 与CTE无关,但是您可以通过使用日期文字来减少输入:

  • 问题内容: listagg是Oracle 11.2中引入的功能!现在,此功能正在分配给我们,我们正在从MySQL迁移到Oracle,我们有以下查询: 据我们所知,Oracle在MySQL下工作正常,在MySQL下运行良好,它会根据需要返回VARCAR而不是CLOB! 文本很大,我们确实需要CLOB ! 这是我试图做的! 创建一个CLOB类型的CLOB_T表! 然后创建函数 现在,如果我运行它: 我

  • 问题内容: 所以人们可能会告诉我这是一个坏主意,但我至少想让它尝试一下。 编辑 此应用程序的目的是仅当设备与oracle db位于同一网络中或通过VPN连接到网络时才可以工作。数据库中的信息将无法全局访问,这就是为什么我需要直接连接到oracle db的原因。 现在根据这个线程 他成功查询了oracle db。 因此,我有一个相当基本的类,在初始化时将尝试与我的数据库建立连接。 在我的主要活动on

  • 我在下面的查询中遇到了一个错误,它给出了一个符号(在使用循环的行中)。我正在尝试开发一个函数,该函数将动态参数作为表名、列名、表id,并用于其他表。

  • 我认为问题是image的字节长度,因为当我得到字符串的长度()时,它大约是20万字节。 当我在字符串上做子字符串(3000)时,它很容易保存在BLOB列中。 那么问题到底在哪里?? 图像长度太长了吗? 或者我应该使用Oracle的任何其他数据类型? 我读到BLOB可以保存高达4GB的数据,那为什么不是我的??