当前位置: 代码迷 >> Sql Server >> sql 查询重复数据有关问题
  详细解决方案

sql 查询重复数据有关问题

热度:68   发布时间:2016-04-24 09:02:00.0
sql 查询重复数据问题
问题是这样的(表如下 ):

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

------解决思路----------------------
引用:
处理一下mac重复出现的情况
select ip, COUNT(DISTINCT mac) 重复数
  from 数据表
 where user='a'
 group by  ip


+1
  相关解决方案