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

时间:2014-07-02 00:57:16

标签: sql sql-server

所以,我进行了一个测验,问题是编写一个返回最高值项目的选择查询(并且只返回最高值)。所以我有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)

1 个答案:

答案 0 :(得分:0)

你可以写(使用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);