我有下表
PRODUCT LOCATION WHS RANK SALES reason
-------------------------------------------------
FUNZ ATL 11 1 100 out
FUNZ ATL 11 2 90 broken
FUNZ ATL 11 3 80 mal
FUNZ FL 12 4 70 unavailable
我根据销售额对行进行排名。
我知道所有行的总销售额为 340。但我想要类似下面的排名最高但具有销售总额的行。
例如
Product Location WHS RANK SALE reason
-------------------------------------------
FUNZ ATL 11 1 340 out
我怎么能做出这样的事?
不知道该尝试什么。我通过做得到了排名
RANK() OVER (PARTITION BY product, location ORDER BY SUM(sales) ASC) AS SRank
您可以在派生表或表表达式中使用 window 函数,例如:
with cte as (
select <columns>,
sum(SALES) over(partition by product) as TotSales
from <yourtable>
)
select *
from cte
where rank = 1;