2017-02-14 3 views
-1

ここで興味深い質問があります。私は訪問者のippage_idとタイムスタンプ(date)を格納するテーブルを持っています。MySQL:1日に1ページあたりの訪問ユーザーをカウントするにはどうすればよいですか?

id|page_id | ip | date 
1 | 37 |1.1.1.1| 2017-02-10 14:03:16 
2 | 38 |1.2.1.1| 2017-02-10 11:04:16 
3 | 39 |1.1.3.1| 2017-02-10 16:05:16 
4 | 37 |1.5.1.1| 2017-02-10 17:08:16 
5 | 37 |1.1.1.1| 2017-02-10 19:07:16 

:私は

visitors_counterは、このようになりますので、私は、その出力を取ると(毎日)トレンドされたpage_id計算することができ、各page_idのために一日あたりの訪問者の量をカウントしたいですそして、私が達成したいことのようになります。これまでのところ、私は一日あたりのユニークビジターの量をカウントすることができました

id|page_id |visitors | date 
1 | 37 |3  | 2017-02-10 14:03:16 
2 | 38 |1  | 2017-02-10 11:04:16 
3 | 39 |1  | 2017-02-10 16:05:16 

SELECT DATE(date) Date, COUNT(DISTINCT page_id) uniqueperday FROM visitors_counter GROUP BY DATE(date)

私はイム近くを知っているが、私はpage_idが最も訪問されたものであるかわからないように、そのなく、かなり私が欲しいもの

おかげ

答えて

1

あなたがして、グループを使用してカウントしなければならない(*)(ページ37のための2回同じIDを持っていると3を引き起こすたい)

SELECT DATE(date) Date, page_id, COUNT(*) visitperday 
FROM visitors_counter 
GROUP BY DATE(date), page_id 

othewise Giorgiosは正しいですone

+0

これは私が必要としたものです。余分な質問として、毎日だけでなく、X時間ごとに数えることも可能でしょうか? 3時間ごとにページあたりの訪問者数を取得すると言うことができますか? – Raulnd

+0

あなたは範囲の時間を変更する必要があります...しかし、これは別の質問です.. – scaisEdge

1

は単にGROUP BY句でpage_idを追加します。

SELECT DATE(date) Date, page_id, COUNT(DISTINCT ip) uniqueperday 
FROM visitors_counter 
GROUP BY DATE(date), page_id 

上記のクエリは、一意のip訪問数/ページ/日を返します。

0

ページと日付で集計を使用して、1日あたりのページあたりの個別訪問ユーザーの数を見つけることができます。また、ユーザー変数を使用してシーケンスIDを生成します。あなたの結果のための

set @id := 0; 

select @id = @id + 1 id, 
    page_id, 
    count(distinct ip) visitors, 
    min(date) 
from visitors_counter 
group by page_id, DATE(date) 
order by visitors desc, page_id; 
関連する問題