我试图通过包裹在我头上的功能来获得结束和分区。这是一个我只是不明白的例子。试图了解over()和分区
这里是我拥有的数据:
SALESORDERID ORDERDATE
43894 08/01/2001
43664 07/01/2001
43911 08/01/2001
43867 08/01/2001
43877 08/01/2001
44285 10/01/2001
44501 11/01/2001
43866 08/01/2001
43895 08/01/2001
43860 08/01/2001
当我运行此查询:
select Row_Number() over(partition by orderdate order by orderdate asc)
as Rownumber, salesorderid, orderdate
from test2
order by rownumber
下面是结果我得到:
ROWNUMBER SALESORDERID ORDERDATE
1 43664 07/01/2001
1 43911 08/01/2001
1 44109 09/01/2001
1 44483 11/01/2001
1 44285 10/01/2001
2 43867 08/01/2001
2 44501 11/01/2001
3 43895 08/01/2001
4 43894 08/01/2001
5 43877 08/01/2001
有人能解释一下这个查询对我来说。我对SQL不是陌生的,但是我一直在努力寻找窗口,并且无法让我的头部缠绕在这里。
也可以尝试SELECT COUNT(*)OVER(分区....)中的行的顺序可能是更清楚你它在做什么。 – 2012-02-16 16:42:32
谢谢你的回答。分区子句非常强大 – Luke101 2012-02-17 16:13:07
非常感谢! – 2014-08-27 17:50:48