0

以下の SQL コードのように 15 ではなく 3 を返すように、IP アドレスをグループ化します。

私のデータベースでは次のようになります。

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 に答える