今月のユーザーの評判を計算してから、最も近い他の結果を 4 つ見つけようとしています (2 つが低く、2 つが高い) ので、シーケンスで 5 つの結果を見つけることができます。たとえば、特定のユーザーの評判は 4500 なので、最終結果は 2750、3000、4500、4650、8900 になります。
これは私が持っているクエリです(特定のユーザーの当月の評判のみを選択します):SELECT SUM(reputation_change) FROM activity WHERE user_id = '1' AND YEAR(datetime) = YEAR(CURDATE()) AND MONTH(datetime) = MONTH(CURDATE())
私のテーブルは次のとおりです。
問題は、これをパフォーマンス フェアにする方法です。テーブルを再構築して、ユーザー列ごとに追加する必要はありませんreputation_this_month
か?
ご提案いただきありがとうございます。