如何根据最大行数选择字段

时间:2015-05-29 17:25:57

标签: sql laravel eloquent

我正在使用laravel 4.2,我有下表,看起来像这样

 ID|chosen(boolean('0','1'))|subject|user_id
  1|1                       |cricket|2
  2|0                       |cricket|3
  3|1                       |rugby  |2

我想选择拥有最多行数的user_id,换句话说,选择所选列中包含最多1位的用户。因此,在这种情况下,用户2将是正确的结果。

2 个答案:

答案 0 :(得分:1)

你可以这样使用查询构建器

$table = DB::table('table')
             ->select(array(DB::raw('count(User_ID) AS CountUser')))
              ->where('chosen', 1)
             ->orderBy('CountUser', 'desc')
             ->groupBy('User_ID')
             ->first();

答案 1 :(得分:-1)

我不知道laravel,但您可以使用以下sql进行查询

:t

这里是sqlfiddle链接:http://sqlfiddle.com/#!9/2ca40/1

编辑: 使用其他答案中建议的更有效的SQL:

 select user_id from(select max(count_ones), user_id from(select
 count(id) as count_ones,user_id from table_name where
 chosen = 1 group by user_id) as table1) as table2