基于线程:Spring Data JPA-结果中带有多个聚合函数的自定义查询
我的jpa存储库中有这个查询
@Query("SELECT new mx.com.sk.AveragesPojo(AVG(a.initial), AVG(a.initialEFSL), AVG(a.finalEFSL), AVG(a.entitySettlement)) FROM AveragesModel AS a WHERE groupName = :groupName AND idRemote = :idRemote")
public AverajesPojo getLastSurveyAverages(@Param("groupName") String groupName, @Param("idRemote") Long idRemote);
}
并且在我的pojo构造函数中是:
public AverajesPojo(Float initial, Float initialEFSL, Float entitySettlement, Float finalEFSL) {
super();
this.initial = initial;
this.initialEFSL = initialEFSL;
this.entitySettlement = entitySettlement;
this.finalEFSL = finalEFSL;
}
但我有这个错误:
创建名为“Averages Repository”的bean时出错:调用init方法失败;嵌套异常为java.lang.IllegalArgumentException:对方法public abstract mx.com.sk.pojos.averajespojo mx.com.sk.admin.repositories.averagesrepository.getLastSurveyaVerages(java.lang.string,java.lang.long)的查询验证失败!
我错在哪里?
请在DTO结构中使用double而不是float,如果您想从DTO返回float,那么您可以在结构中管理它。
AVG函数将状态字段路径表达式作为参数,并计算组上状态字段的平均值。状态字段必须是数值,并且结果以双倍形式返回。
public class AveragesPojo {
private double initial;
private double initialEFSL;
private double entitySettlement;
private double finalEFSL;
public AveragesPojo(double initial, double initialEFSL, double entitySettlement, double finalEFSL) {
super();
this.initial = initial;
this.initialEFSL = initialEFSL;
this.entitySettlement = entitySettlement;
this.finalEFSL = finalEFSL;
}
}
还请使用.groupname
&.idremote
,并且返回类型应与constrcuture相同,因为它们具有相同的类型值将返回,但它们将根据您的查询参数。所以让他们像你的结构一样。EntitySettlement
和Finalefsl
:
@Query("SELECT new mx.com.sk.AveragesPojo(AVG(a.initial), AVG(a.initialEFSL), AVG(a.entitySettlement), AVG(a.finalEFSL )) FROM AveragesModel AS a WHERE a.groupName = :groupName AND a.idRemote = :idRemote")
public AverajesPojo getLastSurveyAverages(@Param("groupName") String groupName, @Param("idRemote") Long idRemote);
}
问题内容: 我的表中有一列具有FLOAT类型的值。如何获得此列中所有元素的平均值? 问题答案: 这将平均所有行。要平均子集,请使用子句。要平均每个组(某物),请使用by子句。
我不能得到熊猫的平均值或平均值。有一个数据框。下面我尝试的东西都没有给我列的平均值 以下内容返回多个值,而不是一个值: 这也是:
我正在拼命寻找解决熊猫问题的办法。也许你能帮我。 我正在寻找一个滚动平均值,考虑到之前的平均值。 df看起来像这样: 现在,使用函数我会得到如下结果: 我想从第一个计算中考虑平均值,如下所示: 哪里 提前谢谢你!
问题内容: 我正在尝试学习SQL,所以请耐心等待。我正在使用PostgreSQL 9.3 我想根据日期窗口对一列进行平均。我能够编写窗口函数来完成一个集合,但是我希望能够随着不断增长做到这一点。我的意思是: 我假设有一个比对我要平均的每个范围运行查询更好的方法。任何建议表示赞赏。谢谢你。 编辑 我正在尝试创建均匀分布的垃圾箱,以用于汇总表的值。 我的间隔是: 这里是一个表的列 并且 是并列我想表分
问题内容: 我无法获得熊猫列的平均值或均值。有一个数据框。我在下面尝试的任何事情都没有给我该列的平均值 以下返回几个值,而不是一个: 这样: 问题答案: 如果您只想要列的均值,请选择列(这是一个系列),然后调用:
我试图执行带有子网的select语句,在存储库中使用带有'native query=true'的@query注释。但它给了我以下错误: psqlexception:error:“select”或“select”附近的语法错误 sub SELECT查询单独给出如下所示执行时的预期结果 上述查询的结果集是;RatingsAndReviews对象数组 所以我想要得到的是客户对特定“否”的评分。星星的。比