我有一个Laravel雄辩的查询,它过滤field中的重复条目并返回按时间戳排序的唯一值。

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


我不只是“过滤”重复项,而是要对它们进行计数并返回按每个重复项的计数排序的数据。

还可以返回带有数据的实际计数数字,还是必须使用两个不同的查询?

最佳答案

您可以对groupBy'd字段进行计数并按该计数排序。

$test = $this->myModel
    ->select('my_models.*', 'COUNT(field) as fieldcount')
    ->orderBy('timestamp', 'desc')
    ->groupBy('field')
    ->sortBy('fieldcount', 'desc')
    ->get();

10-05 20:43
查看更多