我很難表示此查詢,我爲從給定'uid'中選擇最大月份和最大年份行編寫該查詢。我有6個數據,其中3個數據具有uid'4',其他3個數據具有uid'5'。我想從uid 4和5中獲取最大月份和最大年份數據。這是我的標準查詢,我得到了這個結果。基於最大年份和最大月份的休眠排序表以及使用條件按ID分組
結果列表的大小:2
UID:5的NID:CDF月份:11年:2012
UID:4的NID:F58月份:10年:2012
但是,當我改變從2012年到2013年的uid年份只返回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"));
我的表看起來像這樣..
>
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
我想從我的數據庫中的第1次和第5次的紀錄。我被困在這個階段。請提供一些指導,以便通過分組獲得記錄。
在此先感謝。
感謝Dheeraj和是的,我想要相同類型的查詢。上面的查詢很好,但同一年。當我改變年份時,它只返回一個結果。 – James 2015-02-08 17:53:28
它不僅應該返回整個對象不僅最大月份和年份。 – James 2015-02-08 19:18:09