我正在尝试在数据库中进行查询,以获取最签出书籍的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;