这个很难解释。我正在尝试在我的选择插入中将Row_Number()Over(Order by PickedDate)放入新表中。
这适用于生产1,2,3,4,5,6,7,但这不是我想要做的。我希望在每个水果分组的第一位产生一行。
例如,我有以下表格结构,我试图插入; ItemOrder int,FruitType nvarchar(100),DatePicked datetime,
包含以下数据
FruitType|DatePicked Apple|10/1/2012 Apple|10/3/2012 Apple|10/2/2012 Plum|9/13/2011 Plum|9/14/2011 Plum|9/15/2011 Cherry|12/2/2012 Cherry|12/4/2012
我正在尝试获得以下结果
FruitType|DatePicked|ItemOrder Apple|10/1/2012|1 Apple|10/3/2012|3 Apple|10/2/2012|2 Plum|9/13/2011|1 Plum|9/14/2011|2 Plum|9/15/2011|3 Cherry|12/2/2012|1 Cherry|12/4/2012|2
帮助所有人
CREATE TABLE #FruitStandPicked ( FruitType NVARCHAR (100), DatePicked DATETIME ); INSERT INTO #FruitStandPicked (FruitType, DatePicked) VALUES ('Apple', '10/1/2012'), ('Apple', '10/3/2012'), ('Apple', '10/2/2012'), ('Plum', '9/13/2011'), ('Plum', '9/14/2011'), ('Plum', '9/15/2011'), ('Cherry', '12/2/2012'), ('Cherry', '12/4/2012'); CREATE TABLE #FruitStandTable ( Itemorder INT, FruitType NVARCHAR (100), DatePicked DATETIME ); --this needs the tweak INSERT INTO #FruitStandTable (ItemOrder, FruitType, DatePicked) SELECT row_number () OVER (ORDER BY fruittype, datepicked), FruitType, DatePicked FROM #FruitStandPicked; SELECT * FROM #FruitStandTable; DROP TABLE #FruitStandTable; DROP TABLE #FruitStandPicked;
这再次起到了订单的作用,但我也需要通过分组来完成订单。
提前致谢!
答案 0 :(得分:1)
您仍然可以将ROW_NUMBER
与PARTITION
子句一起使用。
试试这个:
SELECT *, ROW_NUMBER() OVER(PARTITION BY Fruit ORDER BY PickedDate) ItemOrder
FROM <YOUR-TABLE>