我想根据一列的值过滤表格,然后获取每个值的最大值。
e.g。
id | value
-----------
0 | 10
0 | 22
0 | 50
1 | 33
1 | 4
2 | 5
2 | 23
2 | 33
3 | 22
3 | 50
按ID为2和3的行进行过滤,然后获取每个ID的最大值
id | value
-----------
2 | 33
3 | 50
如何使用hibernate来使用它?
这是我的尝试:
List<int> ids = ... // Retreived from elsewhere
Disjunction disjunction = Restrictions.disjunction();
for(int id: ids){
disjunction.add(Restrictions.eq("id", id)); // Specify which IDs
}
@SuppressWarnings("unchecked")
List<Item> items= (List<Item>) sessionFactory.getCurrentSession()
.createCriteria(Item.class)
.add(disjunction)
.setProjection(
Projections.projectionList()
.add(Projections.max("value"))
.add(Projections.groupProperty("id")
)
)
.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY)
.list();
这只是给我带有最高值的'id'(例如3,而不是整行)
我想在spring mvc app中这样做。
提前致谢
答案 0 :(得分:0)
select MAX(id),max(value) from ABCD where id in (110,56001) group by id
尝试使用此查询在表单中执行以获得预期的输出。