Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Order by、group by、HQL中的第一个结果(从Oracle SQL转换)_Java_Oracle_Hibernate_Hql_Sql Order By - Fatal编程技术网

Java Order by、group by、HQL中的第一个结果(从Oracle SQL转换)

Java Order by、group by、HQL中的第一个结果(从Oracle SQL转换),java,oracle,hibernate,hql,sql-order-by,Java,Oracle,Hibernate,Hql,Sql Order By,如何在Hibernate HQL中表示以下Oracle SQL select table_num , room_id , min(event_type) keep(dense_rank first order by changed_on desc) from room_history group by table_num, room_id; 查询背后的想法是按“changed_on”datetime列对表“room_history”排序,然后按“table_num”和“room_id”对分

如何在Hibernate HQL中表示以下Oracle SQL

select table_num
, room_id
, min(event_type) keep(dense_rank first order by changed_on desc) 
from room_history 
group by table_num, room_id;
查询背后的想法是按“changed_on”datetime列对表“room_history”排序,然后按“table_num”和“room_id”对分组,同时为每个组保留第一个“event_type”。上面提到的查询适用于Oracle,但我在将其转换为HQL时遇到困难


目的是获取“table_num”和“room_id”对的最新“event_type”

这似乎是不可能实现的

我最终转换了下面的SQL查询。它并不完美,但它确实符合我的目的

select table_num, event_type et from room_history where id in (select max(id) from privacy_history group by msisdn);

我能够做这个假设,因为当这个表总是a.id>b.id,然后a.changed\u on>b.changed\u on时。

这似乎是一个问题,我似乎找不到合适的HQL语法来产生相同的结果。我之所以需要HQL是因为我缩进以在更大的查询中使用它,因此无法在我的应用程序端使用它。您可以发布您尝试过的HQL,以便我们指出错误。HQL中似乎没有语法来实现这一点。找到了解决方法(见答案)