【发布时间】:2013-11-01 10:40:40
【问题描述】:
对不起,如果我问这个问题,也许它有一个简单的解决方案,但我现在挠了三天,找不到好的解决方案。
我有两张表,一张定义“总计”,另一张定义“详细信息”。
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)。
I.E. “街机类别”排名:
|item_id|category| rank|
| 1 | arcade| 1|
| 3 | arcade| 3|
| 4 | arcade| 2|
完成类似任务的最佳方法是什么?
提前感谢大家!
【问题讨论】: