我正在创建一个查询,该查询为我提供了访问次数排名前5位的国家/地区,但我的查询无法正常工作。

我可以限制我的查询,如何查看所有国家/地区的所有记录,以查看访问量增加的5个国家/地区。

我的查询:

 $top5 = DB::table('visits') ->select('ip','country', 'browser') ->groupBy('ip') ->get();


输出示例:
http://pastebin.com/wtu8CnL8

最佳答案

首先,您需要按国家/地区对查询进行分组,因为这就是您要查找的内容。然后,您需要计算结果,按该数字排序,然后随便取您所需要的。

 $top5 = DB::table('visits')
     ->select('ip','country', 'browser', DB::raw("count(*) as total_visits"))
     ->groupBy('country')
     ->orderBy('total_visits','DESC')
     ->take(5);

10-04 11:45
查看更多