基于多列过滤重复行(QueryBuilder 4.2)

时间:2017-11-13 18:40:17

标签: mysql laravel laravel-query-builder

在尝试过滤表格的前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)对条目进行分组,而不是对该表进行排序。

任何人都知道如何实现我的目标?

0 个答案:

没有答案
相关问题