繁体   English   中英

SQL Max的总和(两行具有相同的值)

[英]SQL Max of a sum (two rows with same value)

因此,我进行了一个测验,问题是编写一个选择查询,该查询返回值最高的项目(并且仅返回最高的项目)。 因此,我有2张桌子,一张是物品清单,一张是每件物品的价格。 我必须对所有项目的值求和,然后返回哪些项目具有最大的价值,如果有的话可以将两者都显示出来。

我想出了什么,但是我很肯定有一种更简单的方法可以做到这一点。 我只是想知道是否有人可以帮助我简化我的回答:

select a.item from
(select item , sum(price) as price from Inventory i
inner join prices p on p.item = i.item
group by item, price) a
where price= (select MAX(a.price) from
(select item , sum(price) as price from Inventory i
inner join prices p on p.item = i.item
group by item, price) a)

您可以编写(使用HAVING函数)

select i.item
from Inventory i
inner join prices p on p.item = i.item
group by i.item
having sum(price) = (SELECT MAX(sum_price) from (select SUM(price) OVER (PARTITION BY item) sum_price from prices) a);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM