问题是这样的(表如下 ):
id ip user time mac
1 1.1.1.1 a 2015-6-6 0000-1111-2222-3333
1 1.1.1.1 a 2015-6-6 9999-0000-4444-5555
1 2.2.2.2 a 2015-6-6 7777-1111-2222-66666
1 2.2.2.2 a 2015-6-6 8888-99999-2222-00000
现在想通过查询知道有多少个IP(ip是去重复后个数)并且每个IP下面有多少个MAC(或者说每个IP重复了几次,因为MAC字段是唯一的)
ip去重复后sql是这样写的:
select ip from 数据表 where user='a' group by ip
(但是不知道,怎么调出每个IP重复的次数)
------解决思路----------------------
没太明白 直接COUNT 即可
SELECT ip,COUNT(mac)
FROM 数据表
GROUP BY ip
------解决思路----------------------
select ip, count(ip) as 重复个数 from 数据表 where user='a' group by ip
------解决思路----------------------
如果你想只显示有重复IP的IP, 那也可以过滤掉 IP对应MAC只有一个的.
select ip, count(ip) as 重复个数 from 数据表 where user='a'
group by ip
having count(ip) > 1
------解决思路----------------------
处理一下mac重复出现的情况
select ip, COUNT(DISTINCT mac) 重复数
from 数据表
where user='a'
group by ip
------解决思路----------------------
+1