Java 必须出现在GROUP BY子句中,或在count postgresql的聚合函数中使用 从CustomerOrder公司选择计数(*),其中 co.createdAt>=:fromDate和co.createdAt

Java 必须出现在GROUP BY子句中,或在count postgresql的聚合函数中使用 从CustomerOrder公司选择计数(*),其中 co.createdAt>=:fromDate和co.createdAt,java,postgresql,hibernate,Java,Postgresql,Hibernate,聚合函数不受order子句的影响,因此您可以在不添加order by的情况下获得正确的结果。 您不能选择未在group by中提及且未参与聚合的选定列。在您的情况下,order by createdAt在选择createdAt时工作,这会引发错误 所以如果你想知道你的where条件,你只需要 select count(*) from CustomerOrder co where co.createdAt >= :fromDate and co.createdAt <= :toD

聚合函数不受order子句的影响,因此您可以在不添加order by的情况下获得正确的结果。 您不能选择未在group by中提及且未参与聚合的选定列。在您的情况下,order by createdAt在选择createdAt时工作,这会引发错误

所以如果你想知道你的where条件,你只需要

select count(*) from CustomerOrder co where  
 co.createdAt >= :fromDate and co.createdAt <= :toDate order by co.createdAt desc;
选择计数(*)
来自客户订单公司

其中co.createdAt>=:fromDate和co.createdAt=:fromDate和co.createdAt我怀疑它抱怨错误中的createdAt字段?删除order by子句,因为它对结果没有任何影响。可能
count(*)
也应替换为
count(co)
,因为这是HQL
select count(*) 
from CustomerOrder co 
where  co.createdAt >= :fromDate and co.createdAt <= :toDate 
select createdAt , count(*) 
from CustomerOrder co 
where  co.createdAt >= :fromDate and co.createdAt <= :toDate 
GROUP BY createdAt