我需要一些查询帮助。我想从结果集重复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
但这给了我错误的数字,有人可以帮助我吗?
编辑:
我使用了复制词,但它应该是:不同的。对不起,伙计们。
答案 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