在这种情况下,我的平均排名将返回2和34。但我怎么能让它只数第一排队伍呢?因此,它将只采取一个关键字的排名从每个日期的间隔。
$interval = \DB::table('keywords')
->selectRaw('keyword, url, AVG(rank) rankAvg, SUM(clicks) clicksSum ')
->join('ranks', 'keywords.id', '=', 'ranks.keyword_id')
->whereBetween('ranks.date', array('2018-07-20','2018-07-29'))
->orderBy('clicksSum', 'DESC')
->groupBy('keywords.id')
->paginate(50);
Table: Keywords
id keyword
1 test
Table: Ranks
id keyword_id rank url clicks date
1 1 2 /test/ 29 2018-07-28
1 1 4 /test2/ 5 2018-07-28
我希望达到的目标是得到rankavg=2,然后单击ssum=29。
表中有很多数据,这只是一个简单的例子。
1条答案
按热度按时间z3yyvxxp1#
你可以使用mysql
max
按它来点菜