MySQLSQLコマンドに問題があります。
3列のテーブルがあります。
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テーブルに配置した場合:
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
次のデータのみを表示したい:
date | count
------------------
2013-01-21 | 1
2013-01-22 | 2
それを行うための最良の方法は何ですか?テーブルが急速に大きくなり、アプリケーションでそれを行うと多くのリソースがかかるため、アプリケーションですべての重複を削除するループを作成するつもりはありません。