如何解决按汇总分组,导致数字过高
[ {CatId: 1,"type":"group","minValue": 100,"currentValue": 80,"groupId":1},{CatId:1,"type":"member","minValue": 50,"currentValue": 50,"memberId":1} ]
我想要的输出很复杂,但是我想更简单地开始。按catId分组的理想输出数据
CatId: 1,groupsTotalMinValue: 100,groupsTotalCurrentVal: 80,groupsTotal: 1,membersTotal: 1,totalBalancedGroups:0,totalBalancedClients:1
平衡结果适用于minValue和currentValue相同的组/成员。
无论如何,为了使事情变得更简单,我现在只想获取groupsTotalMinValue,groupsTotalCurrentVal,groupsTotal和membersTotal,我尝试了以下联接,但数量很高:
Query query = QueryBuilder.select(
SelectResult.expression(Function.sum(Expression.property("minValue").from("groups"))).as("groupsTotalMinValue"),SelectResult.expression(Function.sum(Expression.property("currentValue").from("groups"))).as("groupsTotalCurrentValue"),SelectResult.expression(Function.count(Expression.property("groupId").from("groups"))).as("groupsTotal"),SelectResult.expression(Function.count(Expression.property("memberId").from("members"))).as("membersTotal"),SelectResult.expression(Expression.property("CatId").from("groups")).as("CatId"))
.from(DataSource.database(database).as("groups"))
.join(Join.join(DataSource.database(database).as("members")).on(Expression.property("CatId").from("groups").equalTo(Expression.property("CatId").from("members"))))
.where(Expression.property("type").from("groups").equalTo(Expression.string("group"))
.and(Expression.property("type").from("members").equalTo(Expression.string("member")))
.and(Expression.property("CatId").from("members").equalTo(Expression.property("CatId").from("groups")))
.and(Expression.property("districtId").from("members").equalTo(Expression.intValue(districtId))))
.groupBy(Expression.property("CatId").from("groups"));
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。