在尝试过滤表格的前N个结果时,我遇到了一些困难。
假设下表:
ID, X, Y, Result0, Result1
-------------------------------
0 0 0 1 4
1 0 1 2 5
2 0 1 1 4
3 0 2 2 5
4 0 3 0 1
5 1 3 3 4
6 1 3 2 5
7 1 3 4 6
所以,假设我想获得最高Result0值的前2个结果,如果Result0值相等则使用Result1作为平局,并且只有(X,Y)的不同值,
如果我将运行以下查询:
$result = DB::table('table')
->orderBy('Result1', 'DSC')
->orderBy('Result0', 'DSC')
->take(300)
->get();
此代码将返回ID 5,7,因为它们具有最高的Result0值,但这些字段的X,Y是相同的,并且我只想获得不同的X,Y值的最高结果。
我尝试添加
->groupBy('X','Y')
但它根据条目的数据库顺序(即ID)对条目进行分组,而不是对该表进行排序。
任何人都知道如何实现我的目标?