2011-03-09 14 views
2

を持つユニークなIPアドレスを数える、これは私が私のクエリのために持っているものです。私はMySQLを使用して独自のIPアドレスの総数をカウントしようとしているMySQLの

SELECT COUNT(`id`) as `count` FROM `pageviews` WHERE `timestamp` BETWEEN '1299675600' AND '1299762000' GROUP BY `client_ip` 

私が持っている唯一の問題は、それがカウントされていますそのIPアドレスによって行われた結果は、MySQLにはIPアドレスの各ロットを一意に数えるだけでなく、グループ化して数えるという方法があります。

乾杯。

+1

あなたは 'SELECT DISTINCT' – allenskd

答えて

4

COUNT(DISTINCT ...)を使用して、一意のIPアドレスの数をカウントできます。私はあなたの質問が何であるか全くわからないが、あなたはこれを試すか、あなたのニーズに合わせて、それを適応させることができます:

SELECT COUNT(DISTINCT client_ip) as `count` 
FROM `pageviews` 
WHERE `timestamp` BETWEEN '1299675600' AND '1299762000' 
+0

最初のコメント、最高の答えをしようとしています。乾杯! –

0

次は、トリックを行う必要があります。

SELECT COUNT(DISTINCT `client_ip`) as `count` FROM `pageviews` WHERE `timestamp` BETWEEN '1299675600' AND '1299762000' 

をグループする必要はありませんby client_ip DISTINCTキーワードを使用してすでに別の値を照会できるためです。

1

何について:あり

select count(distinct client_ip) as total_num 
from pageviews 
where `timestamp` BETWEEN '1299675600' AND '1299762000' 

、あなたはdistinct IPアドレスの数をカウントします - あなたが望むものであるべきです。もはやgroup by節は必要ありません。

0

あなたは(COUNTでDISTINCTを使用することができます):

SELECT COUNT(DISTINCT client_ip) as `count` 
FROM `pageviews` WHERE `timestamp` BETWEEN '1299675600' AND '1299762000'