对不起,如果我问这个,也许它有一个简单的解决方案,但我现在已经摸索了三天,我找不到一个好的解决方案。
我有两张表,一张定义“总计”,另一张定义“详细信息”。
Table_Totals
|item_id|user_rating| rating_count|
| 1 | 5.000| 5|
| 2 | 2.000| 3|
| 3 | 1.000| 5|
| 4 | 3.000| 2|
| 5 | 4.000| 8|
我可以通过此查询轻松获得每个 item_id 的“排名”:
SELECT uo . * , (
SELECT COUNT( * )
FROM Table_Totals ui
WHERE (ui.user_rating, ui.item_id) >= ( uo.user_rating, uo.item_id )
) AS rank
FROM Table_Totals uo
WHERE item_id = 3
所以,我得到了这个(全球排名):
|item_id|user_rating| rating_count|rank|
| 3 | 1.000| 5| 5|
现在,我也有这张表(定义“详细信息”):
Table_Details
|item_id|category| players|
| 1 | arcade| 113|
| 2 | RPG| 31|
| 3 | arcade| 522|
| 4 | arcade| 100|
| 5 | MMORPG| 82|
我的问题是:如何获得 item_id BY 类别的排名?我怎样才能加入这两张桌子并得到这样的东西?(记住:item_id.Table_Totals = item_id.Table_Details)。
“街机类别”的 IE 排名:
|item_id|category| rank|
| 1 | arcade| 1|
| 3 | arcade| 3|
| 4 | arcade| 2|
完成类似事情的最佳方法是什么?
在此先感谢大家!