sql:如何获取右列中最大值的左列属性

x8diyxa7  于 2021-08-09  发布在  Java
关注(0)|答案(1)|浏览(266)

我是sql新手,有一个关于如何执行查询的问题我有下表

如何返回每个产品标识,即该产品在哪个国家销售最多
所以答案应该是:

1: United States 
2: United States/ Brazil (Either one but not both)
3 Peru/ United States  (Either one but not both)
w7t8yxp5

w7t8yxp51#

你可以用 row_number() :

select t.*
from (select t.*, row_number() over (partition by productid order by amount desc) as seqnum
      from t
     ) t
where seqnum = 1;

注意:相关子查询将返回与最大值匹配的所有行。使用 row_number() 保证每个产品只返回一行。

相关问题