1
我有一個「資源」表,其中包含有關特定權重的資源如何放置在用戶區域內的信息。用另一列分組值的最大值選擇多個行
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
但我還真沒發現計算這個的正確方法。 我發現了很多類似的問題,但沒有解決這個確切的問題。 有什麼幫助嗎?提前致謝!
編輯:
我找到了現在這雙GROUP BY雙ORDER BY部分(即「GROUP BY territory_id,USER_ID」)解決了我的問題,但它也表明我不信息」不想要(不僅是最好的用戶,而且每個用戶至少放置一個資源)。
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;