申し訳ありませんが、簡単な解決策があるかもしれませんが、3日間頭を悩ませているため、良い解決策が見つかりません。
2 つのテーブルがあり、1 つは「合計」を定義し、もう 1 つは「詳細」を定義します。
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|
今、私はこのテーブルも持っています (「詳細」を定義します):
表_詳細
|item_id|category| players|
| 1 | arcade| 113|
| 2 | RPG| 31|
| 3 | arcade| 522|
| 4 | arcade| 100|
| 5 | MMORPG| 82|
私の質問は、item_id BY カテゴリのランクを取得するにはどうすればよいですか? これら2つのテーブルを結合して、このようなものを得るにはどうすればよいですか? (注意してください: item_id.Table_Totals = item_id.Table_Details)。
「アーケード部門」のIEランク:
|item_id|category| rank|
| 1 | arcade| 1|
| 3 | arcade| 3|
| 4 | arcade| 2|
同様のことを達成するための最良の方法は何ですか?
すべてに事前に感謝します!