0

我需要一点帮助来查询。我想从结果集中计算重复的 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

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

编辑:

我用了重复这个词,但它应该是:不同的。对不起各位。

4

3 回答 3

3

假设您的示例有错字,您的意思是

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

你的表被命名为用户。这个查询应该做

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

更新

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

select Name, COUNT(distinct IP)
from users
group by Name
于 2012-04-14T09:20:49.977 回答
0
SELECT   name, COUNT(*) as Totalcount
FROM     users
GROUP BY name;
于 2012-04-14T09:24:48.447 回答
0

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

SELECT   name, COUNT(*)
FROM     users
GROUP BY name
HAVING COUNT(*) > 1
于 2012-04-14T09:34:08.373 回答