2016-08-04 5 views
0

У меня есть красноречивый запрос Laravel, который фильтрует повторяющиеся записи в field и возвращает уникальные значения, отсортированные по метке времени.Laravel eloquent сортировать по большинству дубликатов

$test = $this->myModel 
    ->orderBy('timestamp', 'desc') 
    ->groupBy('field') 
    ->get(); 

Вместо всего «фильтрации» дубликатов, я хотел бы, чтобы сосчитать их и возвращать данные упорядочиваются по кол-ву каждого дублей.

Также возможно вернуть фактические номера счетчиков с данными или использовать два разных запроса?

ответ

1

Вы можете сосчитать поле groupBy'd и сортироваться по этому счету.

$test = $this->myModel 
    ->select('my_models.*', 'COUNT(field) as fieldcount') 
    ->orderBy('timestamp', 'desc') 
    ->groupBy('field') 
    ->sortBy('fieldcount', 'desc') 
    ->get(); 
Смежные вопросы