我正在尝试在数据库中进行查询,以获取最签出书籍的reader_id。这是我的桌子:

-----------------------------------------------------
| checkoutID | bookID | readerID | date_checked_out |
-----------------------------------------------------
|     1      |    1   |     1    |    01/01/2016    |
-----------------------------------------------------
|     2      |    3   |     1    |    01/01/2016    |
-----------------------------------------------------
|     3      |   15   |     2    |    01/03/2016    |
-----------------------------------------------------
|     4      |   12   |     1    |    01/04/2016    |
-----------------------------------------------------
|     5      |    3   |     3    |    01/05/2016    |
-----------------------------------------------------
|     6      |   30   |     3    |    01/06/2016    |
-----------------------------------------------------
|     7      |    5   |     2    |    01/08/2016    |
-----------------------------------------------------
|     8      |    2   |     2    |    01/08/2016    |
-----------------------------------------------------
|     9      |    1   |     3    |    01/08/2016    |
-----------------------------------------------------
|    10      |   33   |     3    |    01/19/2016    |
-----------------------------------------------------


所以我的问题是,如何获得总共签出最多书籍的readerID。因此,通过以readerID计数结帐中的总行数,如何获得大多数结帐的readerID?

在这种情况下,我应该得到readerID = 3,这是我想要的答案。谁能告诉我我该怎么做?我从来没有做过这种查询,所以我在问!

谢谢

最佳答案

只需执行GROUP BY并获得具有最高COUNT()的结果:

SELECT readerID
  FROM tbl
 GROUP BY readerID
 ORDER BY COUNT(*) DESC
 LIMIT 1;

10-08 00:21