2013-12-16 123 views
1

我希望能夠每天COUNT DISTINCT IP,然後將它們全部計數在一起。DISTINCT COUNT每天sql

基本上星期一我得到3個不同的IP,在這3箇中,其中兩個訪問了兩次頁面,所以我共有5個記錄。星期二我收到了來自星期一的一個IP和兩個新的不同的IP。我希望能夠統計星期一的3個不同的IP和星期二的3個不同的IP,並將它們加在一起共計6條記錄。這裏是我的代碼:

SELECT *, COUNT(DISTINCT track.ip) AS tracks 
FROM user, track 
WHERE track.user_id = $user_id 
GROUP BY $user_id 
ORDER BY tracks 
LIMIT 1 

我怎麼能算我的DISTINCT IPS?

+1

爲什麼'$ user_id'是'GROUP BY'中的變量?這是一個錯字嗎? –

回答

2

這是你在找什麼?

select sum(NumIpsPerDay) 
from (select date(TheDayCol) as d, count(distinct t.ip) as NumIpsPerDay 
     from track t 
     group by date(TheDayCol) 
    ) t; 

這會計算每天不同IP的數量,然後計算總和。

+0

只有TheDayCol對於同一天的所有行都是一樣的。如果您有日期的日期時間,那麼您需要按照可以分組的方式提取或截斷日期。 – davidgarrison

+0

@dagarrison。 。 。在MySQL中,'date()'函數將日期時間截斷爲日期。 –