2012-11-05 73 views
0

所以,我有我的表的結構如下:由幾列查找在MySQL中唯一值

id user_agent user_ip 
--------------------- 
18 Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.4 (KHTML, like Gecko)  Chrome/22.0.1229.94 Safari/537.4 4.3.2.1 
13 Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.4 (KHTML, like Gecko) Chrome/22.0.1229.94 Safari/537.4 1.2.3.4 

我怎麼能基於兩列(USER_AGENT和user_ip)和指望它找到唯一的值? 我只是嘗試以下解決方案:

SELECT user_agent, COUNT(*) c FROM statistics GROUP BY user_agent, user_ip HAVING c > 1; 

但它不會工作,因爲我想要的。 任何幫助將不勝感激。謝謝。

+2

select user_agent,user_ip,COUNT(*)c FROM statistics GROUP BY user_agent,user_ip HAVING c> 1;應該管用。如果你只想要偶爾有2個或更多的獨特集合。是否有條件> 0將它拋棄? –

+0

我只想製作表達式,它將基於兩列user_ip和user_agent來返回用戶代理和唯一用戶代理的計數。現在它只返回唯一的用戶代理和所有的計數。 – getjump

回答

0

一個可能的原因可能是這種情況,即用戶代理和用戶IP的組合在表中獨特的,因此計數總是1

除去具有by子句,並觀察結果。

+0

沒有任何更改,仍然返回所有非唯一用戶代理的計數,而不減去相同的用戶ips。 – getjump