2013-06-04 48 views
-4

此查詢...IP的正確Count訪問

SELECT a.* 
FROM LicenseHistory a 
JOIN (
    SELECT LicenseID, date as date, COUNT(DISTINCT IPAddress) as IPcount 
    FROM LicenseHistory 
    WHERE (LicenseID= 24965) 
    GROUP BY LicenseID,IPAddress,Date 
    /*HAVING COUNT(DISTINCT IPAddress) > 1*/ 
) b ON (a.LicenseID = b.LicenseID) AND date(a.date) = date(b.date) 
order by date desc, LicenseID desc 

回報......

Date    lic  users IP Address country Count 
2013-05-14 13:44:56 24965 15 70.60.96.98 US 1455 
2013-05-14 13:44:56 24965 15 70.60.96.98 US 1455 
2013-05-14 11:50:34 24965 15 72.252.247.148 JM 111 
2013-05-14 11:50:34 24965 15 72.252.247.148 JM 111 
2013-03-29 07:40:37 24965 15 184.39.241.223 US 14 

計列顯然是不正確,因爲查詢只提取不同IP的回報率的計數123(對於70.60.96.98)。這個查詢如何到達1455的計數?我想統計2013年5月14日許可證24965從70.60.96.98到達的次數,以及每個日期的列表中每個ip的類似程度。

回答

2

爲什麼如此令人髮指的複雜查詢時

SELECT count(*) 
FROM LicenseHistory 
WHERE (LicenseID = 24965) AND (IPAddress = '70.60.96.98') 

會做的伎倆?

+0

因爲您的查詢沒有告訴我在#z號日期訪問過License #y的IP #x多少次。事實上,您的查詢根本沒有考慮日期。公平地說,這個問題似乎被切斷了,所以我會在上面對它進行編輯,這是......我想要計算許可證24965在特定日期從70.60.96.98抵達多少次。 – user2386810