我正在创建一个查询,为我提供了访问次数最多的前5个国家/地区,但我的查询无效。
我的查询我可以限制,我如何按国家/地区计算所有记录,以查看更多访问过的5个国家/地区。
我的查询:
$top5 = DB::table('visits') ->select('ip','country', 'browser') ->groupBy('ip') ->get();
答案 0 :(得分:1)
首先,您需要按国家/地区对查询进行分组,因为这就是您正在查看的内容。然后,您需要计算结果,按照该数字排序,然后只需要你需要的结果。
$top5 = DB::table('visits')
->select('ip','country', 'browser', DB::raw("count(*) as total_visits"))
->groupBy('country')
->orderBy('total_visits','DESC')
->take(5);