我有以下sql表-有重复的SKU -每个都有不同的价格,代表批量购买折扣:
<表类>
SKU
价格
tbody><<tr>SKU1 10.00美元 SKU2 12.00美元 SKU2 9.00美元 SKU1 10.50美元 SKU2 11.20美元 表类>
如果您知道价格的最大数目,您可以使用row_number()
和条件聚合:
select sku,
max(case when seqnum = 1 then price end) as price_1,
max(case when seqnum = 2 then price end) as price_2,
max(case when seqnum = 3 then price end) as price_3
from (select t.*,
row_number() over (partition by sku order by price) as seqnum
from t
) t
group by sku;
注意:这将把价格按升序排列。如果有的话,还不清楚你到底想要什么顺序。