计算sql server中查询中不同ip的数量

时间:2012-04-14 09:11:41

标签: sql sql-server

我需要一些查询帮助。我想从结果集重复ip计数,并将其与用户名放在一起。

原始结果集

Name | IP
--------------
Bert | 192.168.1.1
Bert | 192.168.1.5
Laura| 192.168.1.2

我想要这个:

Name | IpCount
--------------
Bert | 2
Laura| 1

到目前为止,我的查询是:

select ips.userName, COUNT(ips.userIP) as cnt 
from (select u.userName, u.userIP from 
users) as ips
group by ips.userName, ips.userIP

但这给了我错误的数字,有人可以帮助我吗?

编辑:

我使用了复制词,但它应该是:不同的。对不起,伙计们。

3 个答案:

答案 0 :(得分:3)

假设你的例子有拼写错误,你的意思是

Name | IP
--------------
Bert | 192.168.1.1
Bert | 192.168.1.1
Laura| 192.168.1.2

并且您的表名为Users。此查询应该

select Name, COUNT(IP) as cnt 
from users
group by Name

<强>更新

正如@Andriy M所指出的,这个查询应该

select Name, COUNT(distinct IP)
from users
group by Name

答案 1 :(得分:0)

SELECT   name, COUNT(*) as Totalcount
FROM     users
GROUP BY name;

答案 2 :(得分:0)

或者只有ip超过1的用户:

SELECT   name, COUNT(*)
FROM     users
GROUP BY name
HAVING COUNT(*) > 1