ユーザーが特定の重みのリソースを地域内に配置する方法に関する情報を含む「リソース」表があります。MAX SUMの値が別の列でグループ化された複数の行を選択します。
territory_id user_id weight
1 1 1
1 1 4
1 1 2
1 2 2
2 3 2
2 2 3
2 2 3
3 1 1
4 1 1
4 1 1
4 2 2
4 3 3
4 3 1
4 3 2
5 3 2
5 3 3
5 2 1
4 3 1
既存の地域ごとに、リソースの合計重さが最も高いユーザー(この値は何ですか)を計算します。 だから、これは以前のデータの予想される結果のようになります。
territory_id best_user_id best_user_total_weight_of_resources
1 1 7
2 2 6
3 1 1
4 3 6
5 3 5
私はすでにSUM
、MAX
、GROUP BY
でいくつかのネストされたクエリを試してみましたが、私は本当にこれを計算するための適切な方法を見つけることができませんでした。 私は多くの似たような質問を見つけましたが、この正確な問題を解決することはできません。 助けてください?前もって感謝します!
編集:私は「部分的BYダブルORDERと(すなわち「territory_id BY GROUP、USER_ID」)BYダブルGROUPは私の問題を解決するが、それは私がドンの情報も表示されていること、今分かった
(最高のユーザーだけでなく、少なくとも1つのリソースを配置した各ユーザー)。
SELECT territory_id, user_id AS best_user_id, SUM(weight) AS best_user_total_weight
FROM resources
GROUP BY territory_id, user_id
ORDER BY territory_id ASC, best_user_total_weight DESC;