Java 如何在JPQL中嵌套聚合函数
我在春天为一个大学项目工作。我必须开发一个允许用户创建“会议”的系统。 我已经映射了用户和集合(会议)之间的关系,如下所示:Java 如何在JPQL中嵌套聚合函数,java,spring,jpa,jpql,Java,Spring,Jpa,Jpql,我在春天为一个大学项目工作。我必须开发一个允许用户创建“会议”的系统。 我已经映射了用户和集合(会议)之间的关系,如下所示: 用户(1)如果我理解正确,您需要获得所有用户的平均集合点以及每个用户的集合点数量 根据中定义的JPA2.1规范,JPQL中AVG函数的参数必须是数字 此外,您将无法在JPQL中引用子查询(如果没有/exists构造AFAIK) 因此,您应该创建一个查询来获取集合的总计数 select count(r.id) from rendezvous r 然后除以用户数 然后您可以
用户(1)如果我理解正确,您需要获得所有用户的平均集合点以及每个用户的集合点数量 根据中定义的JPA2.1规范,JPQL中AVG函数的参数必须是数字 此外,您将无法在JPQL中引用子查询(如果没有/exists构造AFAIK) 因此,您应该创建一个查询来获取集合的总计数
select count(r.id) from rendezvous r
然后除以用户数
然后您可以获得每个用户的会合次数:
select count(r.id) from rendezvous r group by r.user.id
鉴于此,我建议使用sql查询(本机查询)而不是jpql查询。JPA/JPQL更适合处理对象,而不是经过精细调优的sql查询
例如,您可以轻松获得标准偏差:
select count(r.id) from rendezvous r
select count(r.id) from rendezvous r group by r.user.id