2013-01-22 29 views
0

我遇到了MySQL SQL命令的問題。
我有一個表3列:在SQL查詢中篩選雙精度值

id (int) | ip(string) | time(mysql timestamp) 

我想和按時間分組的所有行計數。我使用下面的代碼吧:

SELECT DATE(TIME) as date, COUNT(*) as count 
FROM table 
WHERE TIME > (NOW() - INTERVAL 10 DAY) 
GROUP BY DATE( `time`) 


好了,但現在,我想忽略雙IP地址。例如: 如果我已經把MySQL表以下DATAS:

ID | time     | IP 
-------------------------------------- 
1 | 2013-01-21 20:48:01 | 127.0.0.1 
2 | 2013-01-22 20:48:01 | 127.0.0.1 
3 | 2013-01-22 20:48:01 | 127.0.0.1 
4 | 2013-01-22 20:48:01 | 127.0.0.3 

我只想看到下面的DATAS:

date  | count 
------------------ 
2013-01-21 | 1 
2013-01-22 | 2 

什麼是做到這一點的最好方法是什麼?我不打算在我的應用程序中創建一個循環來刪除所有重複項,因爲錶快速增長,如果我在應用程序中執行該操作,我將花費大量資源。

回答

4

試試這個:

SELECT DATE(`time`) as date, COUNT(DISTINCT IP) as count 
FROM table 
WHERE `time` > (NOW() - INTERVAL 10 DAY) 
GROUP BY DATE( `time`) 

SQL FIDDLE DEMO