对IP地址进行分组将返回15而不是3

时间:2012-11-14 00:16:47

标签: sql group-by

我想对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

我错过了什么?

提前致谢。

2 个答案:

答案 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