我们可以在 HQL 中将 to_char( ) 与 GROUP BY 一起使用吗

Can we use to_char( ) with GROUP BY in HQL

使用 Hibernate 执行以下查询时

select to_char(vdadCloseDate,'yyyymm'), count(*) from RmDashboardAccountDataBe where 1=1  and vdadRmId in('MK13','MK11') GROUP BY TO_CHAR(vdadCloseDate,'YYYYMM')

我遇到以下异常,

java.sql.SQLSyntaxErrorException: ORA-00979: not a GROUP BY expression

有什么办法可以解决这个问题吗?

这是 "pure" Oracle SQL(即不是 HQL),它看起来与您的查询完全一样(不过我不得不使用不同的 table 和列名):

SQL> select to_char(hire_date, 'yyyymm'), count(*)
  2  from employees
  3  where department_id in (10, 20)
  4  group by to_char(hire_date, 'yyyymm');

TO_CHA   COUNT(*)
------ ----------
200309          1
200508          1
200402          1

SQL>

所以 - 是的,它工作正常。

这是 link 到 HQL Group by clause 这也表明这样的查询是完全有效的(看看我就不必 copy/paste 它的内容在这里).

这就是为什么我问你是否确定这是返回 ORA-00979 错误的查询。你这么一说,呵呵,我都不知道说什么了...