我正在制作一个系统,用户可以通过网站上的某些操作来获得成就。
数据库分为三个,用户、成就和表链接两者。
对于排名来说,重要的是连接用户和成就的表格。结构如下(称为 user_achievements):
| id | user_id | achievement_id | created_at | updated_at |
排名靠前的人应该是成就最多的人,并且谁首先赢得了那个人。
组装的查询:
SELECT user_id,
COUNT(achievement_id) AS 'total',
created_at
FROM `user_achievements`
GROUP BY user_id ORDER BY total DESC, created_at ASC LIMIT 10
此查询有效,但问题是谁拥有最多成就(“总数”)的“分组依据”,它不支持最后一个 created_at 用户。来第一个 created_at 那个用户,这不适合谁是第一个获得这么多成就的人。
我的系统使用 Ruby on Rails,ActiveRecord 中是否有此查询的解决方案,将有很大帮助。
非常感谢!对不起我的英语不好...