次の mySQL クエリを使用して、計算フィールドで並べ替えられた行を対応する行位置に指定します。テンプレートとしてhereのOMG Ponies コードを使用しましたが、行が間違って番号付けされて戻ってきます (ソートなしでキー (gemid) 順に番号付けされています)。GROUP BY の JOIN に関係していることは知っていますが、修正方法は知っています。前もって感謝します。
SELECT g.gemid, sum_rating, @rownum := @rownum + 1 AS row_num FROM gems g
LEFT JOIN (SELECT gemid, SUM(rating) as sum_rating from gemrating GROUP BY gemid) rt ON g.gemid = rt.gemid
JOIN (SELECT @rownum := 0) Z
WHERE g.grade = '8'
ORDER BY sum_rating asc
出力は次のようになります。
gemid sum_rating row_num
------ ------------ ----------
2 10 1
4 25 2
1 40 3
3 41 4
代わりに戻ってきます:
gemid sum_rating row_num
------ ------------ ----------
2 10 2
4 25 4
1 40 1
3 41 3