我知道这是一个热门话题,但我仍然没有找到我想要的东西。我想查询一张表
BOOKS_READ
id
user_id
book_id
格式化列出已阅读书籍最多的用户的排行榜。当用户阅读一本书时,与 book id 和 user id 匹配的记录会登录到 books_read 表中。
是否可以对这个查询的结果进行排名,从 1 开始,并考虑平局?
SELECT user_id, COUNT(*) AS book_count
FROM books_read
GROUP BY user_id
ORDER BY book_count DESC LIMIT 10
如果出现平局,我想在结果中列出一个“=”号。
例如,
rank user_id book_count
=1 30 121
=1 17 121
2 101 119
=3 11 104
=3 91 104
非常感谢您的帮助!我不介意使用 PHP 来处理其中的一些问题,但我对学习针对此类事情的直接 SQL 解决方案非常感兴趣 :-)