0

IP と DateTime 形式のタイムスタンプを使用して、サイトへのリクエストをログに記録するテーブルがあります。このようなほとんどのリクエストでIPを確認するクエリを実行します。

$ips = DB::table('requests')
   ->groupBy('ip')
   ->select('ip', DB::raw('COUNT(DISTINCT created_at) as days'), DB::raw('COUNT(*) as requests'))
   ->orderBy('requests', 'desc')
   ->take(50)
   ->get();

"days" 属性は、IP アドレスがアクティブであった日数をカウントすることになっています。私の問題は、タイムスタンプが Ymd H:i:s であることです。つまり、DISTINCT タイムスタンプをカウントすることで、基本的にリクエストと同じカウントが得られます。したがって、日、月、年ごとにタイムスタンプのみをカウントする方法が必要です。

どんな助けでも大歓迎です。

4

1 に答える 1