Получить максимальные значения в столбце с разными внешними идентификаторами в Laravel - PullRequest
0 голосов
/ 10 апреля 2020

Я хочу получить наибольшее значение из столбца, но эти значения соответствуют двум различным внешним идентификаторам, поэтому я хочу, чтобы он возвращал максимальное число для каждого внешнего идентификатора. Я не знаю, должен ли я использовать max() ... В настоящее время я просто использую groupBy с двумя внешними идентификаторами.

Вот таблица в MySqlAdmin. Я хочу получить максимум bid для каждого id_group и id_karatekas: enter image description here

А вот мой код:

public function soldKarateka()
    {
        $response = array('code' => 400, 'error_msg' => []);
       self::getBidByKaratekaGroup($response);
       return response($response, $response['code']);
    }


    private function getBidByKaratekaGroup( & $response){
        $bidsPerKarateka = DB::table('bids')
            ->groupBy('id_group','id_karatekas')
           ->get();
             $response = array('code' => 200, 'Karatekas order by group' => $bidsPerKarateka);
    }

Ответы [ 2 ]

0 голосов
/ 10 апреля 2020

Вы должны попробовать код ниже, чтобы найти максимальное значение. если имя вашей таблицы bids, тогда все будет в порядке, в противном случае измените имя в соответствии с именем таблицы.

DB::table('bids')
->select([DB::raw('MAX(bids.bid) AS maxbid'), 'bids.id_group', 'bids.id_karatekas'])
->groupBy('bids.id_group', 'bids.id_karatekas')
->get()->toArray();
0 голосов
/ 10 апреля 2020

Вы пробовали функцию max?

Я думаю, что следующий фрагмент будет работать

$data = DB::table('bids')
    ->select(DB::raw('MAX(bid) as bid'))
    ->groupBy('id_group', 'id_karatekas')->get();
...