0

我有这个查询Laravel

Models::select('*')->group_by('user_name')->order_by(DB::raw('count(user_name)'), 'desc')->take(3)->get();

它按他们出现在表格中的数量返回前 3 个用户。
问:我怎样才能得到计数参数(它们出现了多少次?)

目前的回应:

array(
    "Tim","John","Luke"
);

我需要这样的东西:

array(
    array(
        "user" => "Tim",
        "count" => 3
    ),
    array(
        "user" => "John",
        "count" => 2
    ),
    array(
        "user" => "Luke",
        "count" => 1
    )
);

谢谢!

4

1 回答 1

0

您应该COUNT在查询的选择部分执行该操作并为其设置别名,然后在排序中使用该别名。

可能是这样的。

Models::select('*', DB::raw('count(user_name) AS user_count'))->group_by('user_name')->order_by(DB::raw('user_count'), 'desc')->take(3)->get();
于 2013-04-26T10:07:26.040 回答