2011-06-27 10 views
1

私は自分のサイトへのすべての訪問をテーブルに保存しています。私は日付、訪問したページ、セッションIDを保存しています。mysqlを使用している日付で自分のサイトへの訪問回数をカウントするにはどうすればよいですか?

理論上、誰かをセッションIDでグループ化できます。これは1回の訪問とカウントされます。

しかし私がしたいのは、テーブルを通過し、各日付の合計訪問数です。したがって、セッションIDでグループ化し、日付でグループ化します。

すなわち:それは、そのセッションIDのための訪問の合計、および日付を取得するよう

SELECT DATE(added) as date, COUNT(*) FROM visits GROUP BY sessionID, date 

これは動作しません。

---------------------------------- 
| id | added | page | sessionid 
---------------------------------- 

任意のアイデア:

私のテーブルの構造は、このようなビットに見えますか?

私のクエリでは、次のような結果が得られます。

2010-11-24 | 2
2010-11-24 | 14
2010-11-24 | 17
2010-11-24 | 1

私はより多くの1日の下にあるすべての人々の総ような何かを期待されると思いますが、すなわち:

2010-11-24 | 34

+0

日付にタイムスタンプ(時刻を含む)または日付(YYYY-MM-DD)が使用されていますか? –

+0

そのタイムスタンプ – willdanceforfun

答えて

3

各日付には、リクエストごとに異なる時間が含まれています。 SELECT句のようにGROUP BY句にDATEを使用すると、問題が解決します。

sessionIDでグループ化すると、セッションごとに行が作成されます。 sessionIDでグループ化するのではなく、COUNT(DISTINCT sessionID)を使用すると、その日付のセッションIDの別の番号に連絡します。

SELECT DATE(added) as date, COUNT(DISTINCT sessionID) as sessions FROM visits GROUP BY DATE(added) 
+0

ありがとうございます。私はまだ日付のために複数の結果で終わっている。 – willdanceforfun

+0

@KeenLearner - 私はあなたの質問に誤解しました。私の更新された答えを見てください。 –

+0

ビンゴ!ありがとうございます – willdanceforfun

関連する問題