选择具有最高比率和最低产品价格的供应商

问题描述 投票:0回答:1

从“我的订单”表中,我试图为每种产品获得比率订单最高且价格最低的供应商。

      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

enter image description here

我该怎么办?

sql sql-server max inner-join min
1个回答
0
投票

我正在尝试使每种产品的供应商获得最高比率订单和最低价格。

使用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;
© www.soinside.com 2019 - 2024. All rights reserved.