1

申し訳ありませんが、簡単な解決策があるかもしれませんが、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|

同様のことを達成するための最良の方法は何ですか?

すべてに事前に感謝します!

4

1 に答える 1