我很难表示这个查询,该查询是我为从给定的“uid”中选择最大月份和最大年份行而编写的。我有 6 个数据,其中 3 个数据的 uid 为“4”,其他 3 个数据的 uid 为“5”。我想从 uid 4 和 5 获取最大月份和最大年份数据。这是我得到此结果的条件查询。
Size of result list: 2
uID: 5 nID: cdf Month: 11 Year: 2012
uID: 4 nID: f58 Month: 10 Year: 2012
但是当我将 uid 年份从 2012 年更改为 2013 年时,它仅返回 uid 4 的行。
DetachedCriteria maxYearQuery = DetachedCriteria.forClass(Demo.class);
ProjectionList yearProj = Projections.projectionList();
yearProj.add(Projections.max("contextYear"));
yearProj.add(Projections.max("contextMonth"));
yearProj.add(Projections.groupProperty("entityUUID"));
maxYearQuery.setProjection(yearProj);
Criteria crit = session.createCriteria(Demo.class);
crit.add(Subqueries.propertiesIn(new String[] {"contextYear","contextMonth", "entityUUID"}, maxYearQuery));
crit.addOrder(Order.desc("entityUUID"));
我的 table 是这样的..
>
uID:4 nID:cdf 月份:10 年:2012
uID:4 nID:f58 月份:9 年:2012
uID:5 nID:f58 月份:8 年:2012
uID:5 nID:f58 月份:11 年:2012
uID:5 nID:f58 月份:10 年:2013
uID:4 nID:f58 月份:9 年:2012
我想要数据库中的第一条和第五条记录。我被困在这个阶段。请提供一些指导以通过分组来获取记录。
提前致谢。
最佳答案
您想要这种类型的查询
通过uid从Demo组中选择Max(月)、Max(年);
关于mysql - Hibernate基于最大年份和最大月份的排序表,并使用条件按ID分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28395195/