gpt4 book ai didi

java - 使用 HQL 或 CriteriaBuilder 查询的嵌套查询

转载 作者:行者123 更新时间:2023-12-02 13:16:17 25 4
gpt4 key购买 nike

我正在尝试按如下所述获取分组查询的结果

描述:我有一个 LogDetail 表,它有created_date 字段和UserId 字段。我想知道每天有多少用户登录。 created_date列是DateTime类型

select t, count(t) from (select substr(created_date,0,10) as t from logdetail) group by t

如果我运行内部查询,它工作正常,但是当我运行嵌套查询时出现错误... “意外标记:(第 1 行,第 32 列附近”

         ID       User    LoginDate               LogoutDate       a000001  Arvind  06-05-17 12:15:00  06-05-17 12:13:00     a000002  Murty   07-05-17 12:15:00  07-05-17 12:51:00     a000003  John   07-05-17 12:15:00  07-05-17 12:42:00      a000004  John    07-05-17 02:27:00  07-05-17 03:25:00     a000001  Tej     08-05-17 12:15:00  08-05-17 02:15:00     a000001  John    08-05-17 12:15:00  08-05-17 01:55:00    

上表的预期结果

         LoginDate  Frequency      06-05-17    01    07-05-17    03    08-05-17    02    

注意:源表具有同一用户 john 的多个条目,第二点是源日期字段具有日期和时间,因此首先我们只需要从中获取日期部分,然后应用分组

我正在 HQL 或 Criteria Builder 查询中寻找解决方案。

有人知道吗?

最佳答案

您可以尝试如下

SQL查询获取结果

Select trunc(LoginDate), count(ID) from logdetail group by trunc(LoginDate);

相同的 HQL 查询将是

select trunc(ld.loginDate), count(ld.Id) from logDetail ld group by trunc(ld.loginDate)

注意:在 Hql 查询中,根据列上的列映射进行映射

希望这能解决您的问题。

关于java - 使用 HQL 或 CriteriaBuilder 查询的嵌套查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43760386/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com