如何选择重复行并按两列分组

Bil*_*lly 1 laravel eloquent

我有下表:

ID|user_id|group_id|subject |book_id
 1| 2     |3       |history |1
 2| 4     |3       |history |1
 3| 5     |3       |art     |2
 4| 2     |3       |art     |2
 5| 1     |4       |sport   |5
Run Code Online (Sandbox Code Playgroud)

我想列出组3(id)的所有行,这些行具有相同的subject_id和book_id的重复行.subject和book_id是决定要复制的2行或更多行的原因.

我希望我的独特结果看起来像这样:

|subject |book_id|
|history |1      |
|art     |2      |
Run Code Online (Sandbox Code Playgroud)

使用查询构建器或eloquent

pet*_*erm 8

可以查看获得所需结果的SQL查询

SELECT subject, book_id
  FROM table1
 WHERE group_id = 3
 GROUP BY subject, book_id
HAVING COUNT(*) > 1 
Run Code Online (Sandbox Code Playgroud)

这是一个SQLFiddle演示

现在使用Laravel Query Builder一样

$duplicates = DB::table('table1')
    ->select('subject', 'book_id')
    ->where('group_id', 3)
    ->groupBy('subject', 'book_id')
    ->havingRaw('COUNT(*) > 1')
    ->get();
Run Code Online (Sandbox Code Playgroud)