从“我的订单”表中,我试图为每种产品获得比率订单最高且价格最低的供应商。
select v.[Vendor_pk], p.[Product_pk],o.[UnitPrice], o.[RatioOrder], o.[TotalPrice]
from [DWH].[ORDERSfact] o
inner join [DWH].[VENDORdim] v
on o.[Vendor_pk]=v.[Vendor_pk]
inner join [DWH].[PRODUCTdim] p
on o.[Product_pk]= p.[Product_pk]
order by 2, 4 desc, 3
我该怎么办?
我正在尝试使每种产品的供应商获得最高比率订单和最低价格。
使用row_number()
:
select vp.*
from (select v.[Vendor_pk], p.[Product_pk],o.[UnitPrice], o.[RatioOrder], o.[TotalPrice],
row_number() over (partition by product_pk order by ratioorder desc, price asc) sa seqnum
from [DWH].[ORDERSfact] o join
[DWH].[VENDORdim] v
on o.[Vendor_pk] = v.[Vendor_pk] join
[DWH].[PRODUCTdim] p
on o.[Product_pk] = p.[Product_pk]
) vp
where seqnum = 1;