int j=0;
    while(rs.next()){
     String dirtag_tagname=rs.getString("dirtag_tagname");
     if(j==0){
where_key="where na_tag.tag_name='"+dirtag_tagname+"'";
weight_count=",switch(na_tag.tag_name='"+dirtag_tagname+"',"+100*rs.getInt("countrecord");
     }else{
     where_key= where_key+"or na_tag.tag_name='"+dirtag_tagname+"'";
     weight_count=weight_count+",na_tag.tag_name='"+dirtag_tagname+"',"+100*(rs.getInt("countrecord")-j);
     }
     j++;
     }select na_src.src_id,na_src.src_url,na_src.src_title,na_src.src_firstposted,na_src.src_adate,sum(tag_count) from (select na_src.src_id,na_src.src_url,na_src.src_title,na_src.src_firstposted,na_src.src_adate "+weight_count+" from na_tag inner join (na_fav inner join na_src on na_fav.fav_url=na_src.src_url) on na_tag.tag_favid=na_fav.fav_id "+where_key+" group by na_src.src_id, na_src.src_url, na_src.src_title,na_src.src_firstposted,na_src.src_adate, na_tag.tag_name)as tt group by na_src.src_id,na_src.src_url,na_src.src_title,na_src.src_firstposted,na_src.src_adate order by sum(tag_count) desc