Grammar:
在row_number()({ })

Remarks:
ORDER BY子句可以确定分配在特定分区的独特row_number命令行。

参数:
结果集由FROM子句分为row_number功能分区。
确定该row_number值分配给分区中的行的顺序。更多信息,参见ORDERBY子句(Transact-SQL)。

返回类型:
bigint

一个类似MySQL的限制功能语法实例:
复制代码代码如下所示:
SELECT * FROM(选择row_number()在(通过ID ASC秩序)作为行号。


SQL row_number()排序功能

1使用row_number()函数编号:例如
复制代码代码如下所示:
选择电子邮件,CustomerID,row_number()结束(以PSD)作为行的qt_customer

原理:首先根据PSD排序,排序后,对每个数据编号。
2。按升序排列订单并对每个记录进行排序。
代码如下:
复制代码代码如下所示:
选择是,CustomerID,总价,row_number()在(按总价)作为行

三.统计每个家庭的所有订单,并根据每个客户订单进行排序,同时向每个客户的订单编号升序,这样我们知道每个客户都有一些订单。


代码如下:
复制代码如下:选择row_number()在(通过CustomerID为总价分区)为行。
4。每个客户最新订单的统计数字是未来几次的订单。

代码如下:
复制代码代码如下所示:
用标签
(
选择row_number()在(通过CustomerID为总价分区)为行。
)
选择最大(行)为单次,从标签组通过CustomerID CustomerID

5。统计每一个客户订单的最小购买量,以及订单的统计变化,客户是第一次购买。
图:

上面:行表示客户正在购买几次。

想法:使用临时表来执行此操作
1。第一组根据客户,然后根据客户的订单顺序,编号。
2。然后使用子查询来找到每个顾客购买的最低价格。
三.在找到每个客户的最低价格的基础上,找到相应的记录。
代码如下:
复制代码代码如下所示:
用标签
(
选择row_number()在(通过CustomerID为insdt分区)为行。
)
从选项卡中选择*
在总价中
(
选择min(总价)从标签组的ID
)

5。筛选出客户的第一个订单。

思考。使用行= 1查询客户的第一个订单记录。
代码如下:
复制代码代码如下所示:
用标签
(
选择row_number()在(通过CustomerID为insdt分区)为行,*
)
从行= 1的制表符中选择*
SELECT * FROM op_order

6.rows_number()可用于寻呼
想法:首先,选择所有产品并对产品进行编号,然后在WHERE子句中过滤。

7。注意:当使用一个窗口函数,例如过度时,对内部的分组和排序的执行要晚于执行、按组和按顺序执行。
以下代码:
复制代码代码如下所示:
选择
row_number()在(通过CustomerID为insdt分区)为行,
CustomerID,总价,并
从op_order哪里insdt > '2011-07-22

上面的代码是在执行之后首先执行WHERE子句,然后记录每个记录。