基于最大年份和最大月份的休眠排序表以及使用条件按ID分组
我很难表示此查询,我为从给定'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次的纪录。我被困在这个阶段。请提供一些指导,以便通过分组获得记录。
在此先感谢。
你想这种类型的查询
选择MAX(月),马克斯(年)从UID演示组;
我觉得你的问题的解决方案
表Supose名字是演示,并在其中三列的UID,月,年
查询:
选择a.uid,a.year,最大(月)从Demo内部连接(从Demo组中选择uid,max(year)m减1)a.uid = d.uid和a.year = dm group减2;
它会正常工作检查它并给我反馈
嘿Dheeraj感谢您的查询。不过,我只需要使用标准。 – James 2015-02-23 13:05:29
感谢Dheeraj和是的,我想要相同类型的查询。上面的查询很好,但同一年。当我改变年份时,它只返回一个结果。 – James 2015-02-08 17:53:28
它不仅应该返回整个对象不仅最大月份和年份。 – James 2015-02-08 19:18:09