sql server Row_number用法

作用

对结果集的输出进行编号。 具体来说,返回结果集分区内行的序列号,每个分区的第一行从 1 开始。

备注

ROW_NUMBER 是运行查询时计算出的临时值

语法

ROW_NUMBER ( )
OVER ( [ PARTITION BY value_expression , ... [ n ] ] order_by_clause )
一般写为
ROW_NUMBER ( )
OVER ( PARTITION BY 表达式 order by 字段 )
可单个,也可以有多个表达式及字段

参数

PARTITION BY value_expression
将 FROM 子句生成的结果集划分为应用 ROW_NUMBER 函数的分区。 value_expression 指定对结果集进行分区所依据的列 。 如果未指定 PARTITION BY,则此函数将查询结果集的所有行视为单个组
order_by_clause
ORDER BY 子句可确定在特定分区中为行分配唯一 ROW_NUMBER 的顺序。 它是必需的

参数解释

PARTITION BY:
和group by 作用类似,但是细节不同
区别如下:
partition by关键字是分析性函数的一部分,它和聚合函数(如group by)不同的地方在于它能返回一个分组中的多条记录,而聚合函数一般只有一条反映统计值的记录,
partition by用于给结果集分组,如果没有指定那么它把整个结果集作为一个分组。
partition by 与group by不同之处在于前者返回的是分组里的每一条数据,并且可以对分组数据进行排序操作。后者只能返回聚合之后的组的数据统计值的记录。
转载于原博客
group by是分组意思(在group by没有出现的字段,必须是聚合函数,例如:avg,sum等)
例如:
group by id根据id分组
group by id,name 根据id分组之后,再根据name分组

order by:这里就不解释了,排序的意思,不清楚的可以查阅一些资料

上一篇:mysql分区


下一篇:boost::geometry::partition用法的测试程序