我想对ip地址进行分组,使其返回3而不是15,就像下面的SQL代码一样。
以下是我的数据库中的样子:
ID IDP IDU DATE INFO_IP
1 19 0 2012-11-14 00:42:03 127.0.0.1
2 19 0 2012-11-14 00:42:40 127.0.0.1
3 19 0 2012-11-14 00:45:01 127.0.0.1
4 19 0 2012-11-14 00:47:24 127.0.0.1
5 19 0 2012-11-14 00:48:35 127.0.0.1
6 19 0 2012-11-14 00:48:57 127.0.0.1
7 19 0 2012-11-14 00:53:41 127.0.0.1
8 19 0 2012-11-14 01:02:12 127.0.0.1
9 19 0 2012-11-14 01:02:55 127.0.0.1
10 19 0 2012-11-14 01:03:03 127.0.0.1
11 19 0 2012-11-14 01:03:20 127.0.0.2
12 19 0 2012-11-14 01:03:28 127.0.0.2
13 19 0 2012-11-14 01:04:16 127.0.0.2
14 19 0 2012-11-14 01:04:33 127.0.0.3
15 19 0 2012-11-14 01:04:40 127.0.0.3
这是SQL代码:
SELECT idp, COUNT(info_ip) FROM photos_watched
WHERE idp = '19'
GROUP BY info_ip
LIMIT 1
我错过了什么?
提前致谢。
答案 0 :(得分:1)
你想要的是计算不同的IP:
SELECT COUNT(DISTINCT INFO_IP)
FROM photos_watched
WHERE idp = 19;
您当前的查询会计算每组中的IP数量。
答案 1 :(得分:0)
不应该是
SELECT info_ip, COUNT(*)
FROM photos_watched
WHERE idp = '19'
GROUP BY info_ip