sql - 分组并求和,然后根据 SQL 中的最大值计算结果
问题描述
我正在尝试按供应商和 ID 分组,并从下表中获取总重量的总和。之后,对于每个“供应商”,我需要获得最大的“权重”并获得相应的“ID”。
Vendor Id Weight
AAA 1 1234
AAA 1 121
AAA 2 5182
BBB 1 311
BBB 1 9132
BBB 2 108
第一个查询给出以下结果:
[ { Vendor: 'AAA', Id: '1', Total_Weight: 1355 },
{ Vendor: 'AAA', Id: '2', Total_Weight: 5182 },
{ Vendor: 'BBB', Id: '1', Total_Weight: 9443 },
{ Vendor: 'BBB', Id: '2', Total_Weight: 108 }, ]
第二个查询结果如下,对于Vendor 'AAA',最大Total_Weight为“5182”,属于“Id”=2。同样对于'BBB',最大Total_Weight为“9443”,属于“Id” " = 1。
[ { Vendor: 'AAA', Id: '2'},
{ Vendor: 'BBB', Id: '1'} ]
对于第一部分,我的查询如下
select Vendor, Id, sum(Weight) as Total_Weight from table group by Vendor, Id.
不确定如何修改此查询以获得结果的第二部分。任何建议,将不胜感激。
解决方案
以下查询将解决您的问题:
SELECT Vendor, Id from
(select Vendor, Id, max(Total_Weight) from
(select Vendor, Id, sum(Weight) as Total_Weight from table group by Vendor, Id)
group by Vendor
)
内部嵌套查询产生总和,然后找到总权重的最大值。然后外部选择为您提供所需的输出。
推荐阅读
- jhipster - JHipster 网关应用程序登录失败
- javascript - Google Apps 脚本:类表示法和新对象
- python - 如何从python中的字典中获取值?
- reactjs - 如何在同一个根域下创建 2 个 PWA
- javascript - 编写一个 JavaScript 控制台程序来读取输入文件并将句子转换为首字母缩写词
- javascript - 如何在 CKEditor 4 中设置默认字体
- c++ - 使用动态编程的具有分区约束的 Max Sum 子数组
- javascript - 如何从阴影根元素中获取文本?
- java - [3.1.0]使用自定义处理程序发布 API 时出错
- reactjs - Reactjs 如何检查状态常量以确定它是否已初始化?(以避免错误,如果它没有)