我有一个数据库,其中有n个产品,m个单位在不同的日期出售。 袋子每天出售,有些日子是5天,有些日子等等。
示例数据库:
file
我想要一个独特的结果组合,在特定日期销售特定数量的产品。我怎样才能做到这一点? 我正在寻找的例子:
结果:
+---------+----------+-------+
| Product | UnitSold | Date |
+---------+----------+-------+
| bag | 1 | 1 jun |
| wallet | 2 | 2 jun |
| purse | 3 | 3 jun |
| bag | 4 | 4 jun |
| shoes | 3 | 4 jun |
| Shirt | 2 | 1 jun |
| bag | 5 | 2 jun |
| shirt | 6 | 3 jun |
| Purse | 1 | 1 jun |
+---------+----------+-------+
想要列的特定映射 我怎样才能做到这一点 ?我正在使用Microsoft sql server 2008
答案 0 :(得分:0)
如果你不关心你真正想要的结果,你可以输入一个等级或行号。
我将您的数据放入临时表并运行以下内容。每个产品会给我一个结果。有了排名,它会根据销售的单位给我1号。如果需要,您可以根据日期或其他任何内容更改。
select *
from (
select *,rank() over(partition by product order by unitsold ) as rnk
from #temp a
)final
where rnk = 1
product unitsold Date rnk
bag 1 2017-06-01 1
purse 3 2017-06-02 1
shirt 2 2017-06-02 1
shoes 3 2017-06-04 1
wallet 2 2017-06-02 1