我正在创建一个查询,该查询为我提供了访问次数排名前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);