分类统计,不同用户对应的IP,列出每个用户对应的每个IP的值和出现次数 这语句不行吗select userid,sysip,count(sysip) from tabaleName group by userid, sysip 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 用一个二维的hashMapMap<String, Map<String,Integer>> map = new HashMap<String, Map<String, Integer>>();第一维的map的key和value分别为用户id和用户的ip第二维的map的key和value分别为用户使用过的ip以及对应的使用次数。不知道这样是不是能适合到你的场景。 用户:2012213163 IP:10.144.81.00 3次 IP:10.144.81.10 5次用户:2012213164 IP:10.144.81.00 3次 IP:10.144.81.10 5次用户:2012213172 IP:10.144.21.00 8次 IP:10.145.81.10 6次若期望sql查询结果 类似 上述格式在2楼基础上,再做个自连接,连接条件是id相同 再做个自连接,连接条件是id相同不用再连接了,直接在代码中处理就行了,用map 再做个自连接,连接条件是id相同不用再连接了,直接在代码中处理就行了,用map不是在sql中啊,在mongo中,我知道Aggregation框架的group 可以分组统计,可是没有count方法,希望能用java实现。 按照二楼的方式去处理使用Map<String, Map<String,Integer>> map = new HashMap<String userId, Map<String ip, Integer counts>>();每次拿到用户id,先到map中搜,是否包含,包含的话,在对应value,也就是ip和次数对应的map中,查找是否包含该ip,包含的话,将ip对应次数拿出来加1,不包含将ip 和 次数 1 入map遍历结束,拿到的最终map就是 new HashMap<String userId, Map<String ip, Integer counts>>(); countmap.put(ip, count); map.put( userId, countmap); if(map.containsKey(userId)){ if(countmap.containsKey(ip)){ count=countmap.get(ip)+1; }else{ countmap.put(ip, 1); } } 求指点,经过过验证输出的次数总是减去前一个ip的次数得到的才是正确的值。新手捂脸 就内网一对一语音聊天问题 什么时候用内部类??? sql问题 创建包的问题 高手进,关于look & feel 界面更新的问题 推荐一本好的java学习教程 如何用NIO的非阻塞模式传输Object,急! 如何判断输入的类型 如何用java实现精确打印? 数据库问题,问题简单,保证送分 Collection的remove方法只会删除第一个与他内部匹配的对象吗? 谁碰到过maven管理springmvc的项目打成war包后启动报找不到service注解的这种错误
Map<String, Map<String,Integer>> map = new HashMap<String, Map<String, Integer>>();
第一维的map的key和value分别为用户id和用户的ip
第二维的map的key和value分别为用户使用过的ip以及对应的使用次数。
不知道这样是不是能适合到你的场景。
用户:2012213164 IP:10.144.81.00 3次 IP:10.144.81.10 5次
用户:2012213172 IP:10.144.21.00 8次 IP:10.145.81.10 6次若期望sql查询结果 类似 上述格式在2楼基础上,
再做个自连接,连接条件是id相同
不是在sql中啊,在mongo中,我知道Aggregation框架的group 可以分组统计,可是没有count方法,希望能用java实现。
使用Map<String, Map<String,Integer>> map = new HashMap<String userId, Map<String ip, Integer counts>>();
每次拿到用户id,先到map中搜,是否包含,包含的话,在对应value,也就是ip和次数对应的map中,查找是否包含该ip,包含的话,将ip对应次数拿出来加1,不包含将ip 和 次数 1 入map
遍历结束,拿到的最终map就是 new HashMap<String userId, Map<String ip, Integer counts>>();
map.put( userId, countmap);
if(map.containsKey(userId)){
if(countmap.containsKey(ip)){
count=countmap.get(ip)+1;
}else{
countmap.put(ip, 1);
}
} 求指点,经过过验证输出的次数总是减去前一个ip的次数得到的才是正确的值。新手捂脸