项目经验:项目中分组row_number() over(partition by order by )总结



/**查询水质simple(不包含测站信息)项目,使用水功能区数据  查询每个测站最新插入的那条数据 */

     public Map<String, ItemSet> getSimpleItemSetList() {

           StringBuffer sb= new StringBuffer();

           sb.append( "select nmisp.*, pcp.*,misp.*,phncp.*,mooop.*,wbhp.*,opcp.*,bcp.*,aaacp.*,row_number() over(partition by nmisp.stcd order by nmisp.spt desc)cn from ZX_D_NMISP nmisp");

           sb.append( " left join ZX_D_PCP pcp on nmisp.stcd=pcp.stcd and nmisp.spt=pcp.spt");

           sb.append( " left join ZX_D_MISP misp on nmisp.stcd=misp.stcd and nmisp.spt=misp.spt");

           sb.append( " left join ZX_D_PHNCP phncp on nmisp.stcd=phncp.stcd and nmisp.spt=phncp.spt");

           sb.append( " left join ZX_D_MOOOP mooop on nmisp.stcd=mooop.stcd and nmisp.spt=mooop.spt");

           sb.append( " left join ZX_D_WBHP wbhp on nmisp.stcd=wbhp.stcd and nmisp.spt=wbhp.spt");

           sb.append( " left join ZX_D_OPCP opcp on nmisp.stcd=opcp.stcd and nmisp.spt=opcp.spt");

           sb.append( " left join ZX_D_BCP bcp on nmisp.stcd=bcp.stcd and nmisp.spt=bcp.spt");

           sb.append( " left join ZX_D_AAACP aaacp on nmisp.stcd=aaacp.stcd and nmisp.spt=aaacp.spt");

           sb.append( " where 1=1");

           Session session = template.getSessionFactory().getCurrentSession();

           SQLQuery sqlQuery = session.createSQLQuery(sb.toString());

           sqlQuery.addEntity( "pcp", ZxDPcp.class).addEntity("nmisp" ,ZxDNmisp.class).

                addEntity( "misp",ZxDMisp. class).addEntity( "phncp",ZxDPhncp. class).

                addEntity( "mooop",ZxDMooop. class).addEntity( "wbhp",ZxDWbhp. class).

                addEntity( "opcp", ZxDOpcp.class).addEntity("bcp" , ZxDBcp.class).addEntity("aaacp", ZxDAaacp.class);

           List<Object[]> list= sqlQuery.list();

           List<ItemSet> itemSetList= new ArrayList<ItemSet>();

            for (Object[] objs : list) {

                ItemSet itemSet= new ItemSet( null, (ZxDPcp)objs[0], (ZxDNmisp)objs[1],

                           (ZxDMisp)objs[2], (ZxDPhncp)objs[3], (ZxDOpcp)objs[6], (ZxDBcp)objs[7],

                           (ZxDAaacp)objs[8], (ZxDMooop)objs[4], (ZxDWbhp)objs[5], null);

                itemSetList.add(itemSet);

           }

           Map<String, ItemSet> itemSetAssessMap= new LinkedHashMap<String, ItemSet>();

            for(ItemSet itemSet:itemSetList){

                String stcd = itemSet.getNmisp().getId().getStcd();

                 if(itemSetAssessMap.get(stcd)== null){

                     itemSetAssessMap.put(stcd, itemSet);

                }

           }

//         List<ItemSet> itemSetList1=new ArrayList<ItemSet>();

//         Set<Map.Entry<String, ItemSet>> entrySet=itemSetAssessMap.entrySet();

//         for (Map.Entry<String, ItemSet> entry : entrySet) {

//              itemSetList1.add(entry.getValue());

//         }

           

            return itemSetAssessMap;

     }


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值