0

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

我错过了什么?

提前致谢。

4

2 回答 2

1

你想要的是计算不同的 IP :

SELECT COUNT(DISTINCT INFO_IP)
FROM photos_watched
WHERE idp = 19;

您当前的查询计算每个组中的 IP 数量。

于 2012-11-14T00:23:48.417 回答
0

难道不应该

SELECT info_ip, COUNT(*) 
FROM photos_watched
WHERE idp = '19'
GROUP BY info_ip
于 2012-11-14T00:19:33.423 回答