У меня есть приложение Laravel, и у меня есть запрос, который должен работать следующим образом.Цель состоит в том, чтобы получить наиболее продаваемый товар по общему количеству закупленных.
item item_id date quantity_purchased
rice | 14 | 2019-03-23 | 3
chicken | 6 | 2019-03-23 | 2
chicken | 6| 2019-03-20 | 3
corn | 2 | 2019-02-10 | 1
rice | 14 | 2019-03-04 | 5
rice | 14 | 2017-02-10 | 2
Цель состоит в том, чтобы получить наиболее продаваемый товар по количеству закупленных.Необходимо сгруппировать товар по номеру товара, затем суммировать количество купленных товаров для этого товара и упорядочить товары по количеству товара.В приведенном выше примере это должно вернуть
item total_quantity_purchased
rice | 10
chicken | 5
corn | 1
Я пытался выполнить это, используя красноречивый запрос ниже:
return self::where('isRefundedCompletely', false)
->get()
->groupBy('item_id')->orderBy(function($item) {return $item->sum('qty_purchased');}, 'DESC');
, но я получил эту ошибку:
Illuminate\Database\Eloquent\Collection::orderBy does not exist.
Можете ли вы объяснить мне, как эффективно решить эту проблему, используя другой подход, но не прибегая к необработанному запросу?