gpt4 book ai didi

mysql - 选择具有由另一列分组的值的 MAX SUM 的多行

转载 作者:行者123 更新时间:2023-11-30 22:22:38 24 4
gpt4 key购买 nike

我有一个“资源”表,其中包含有关用户如何将特定权重的资源放置在区域内的信息。

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

我已经用 SUMMAXGROUP BY 尝试了几个嵌套查询,但我真的没有找到正确的计算方法这。我发现了很多类似的问题,但没有解决这个确切的问题。有什么帮助吗?提前致谢!

编辑:

我现在发现双 GROUP BY(即“GROUP BY territory_id, user_id”)和双 ORDER BY 部分解决了我的问题,但它也显示了我不想要的信息(不仅是最佳用户,但每个用户至少放置了一个资源)。

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;

最佳答案

您可以运行第一个查询以确定每对夫妇的 SUM(weight) (territory_id,user_id),然后运行第二个 SELECT 查询该结果集以检索对应于最大总和值的行:

SELECT territory_id, user_id, MAX(summ) 
FROM (
SELECT territory_id, user_id, SUM(weight) AS summ
FROM resources
GROUP BY territory_id, user_id
) AS t1
GROUP BY territory_id

关于mysql - 选择具有由另一列分组的值的 MAX SUM 的多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36260066/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com