【发布时间】:2015-08-19 21:35:26
【问题描述】:
如何使用ntile 排名函数而不指定划分每个分区的数字,而是为每个分区分配一个递增的数字?
我想将具有相同值的字段子集的项目分组,然后用相同的数字标记它们,以便每个组的数字按排序顺序递增。
【问题讨论】:
-
不是很清楚你在追求什么,,,,一些样本数据和所需的输出会有很大帮助。
标签: sql sql-server ranking-functions
如何使用ntile 排名函数而不指定划分每个分区的数字,而是为每个分区分配一个递增的数字?
我想将具有相同值的字段子集的项目分组,然后用相同的数字标记它们,以便每个组的数字按排序顺序递增。
【问题讨论】:
标签: sql sql-server ranking-functions
NTILE 不是你的功能。你想要DENSE_RANK。
select DENSE_RANK() over (Order by Col1, Col2...) GroupFlag,
*
from MyTable
这将使Col1 和Col2 字段中具有共同值的所有记录具有相同的整数。 GroupFlag 整数将从 1 开始并按照 order by 子句的顺序递增。
如果您打算问其他问题,请告诉我,我会再试一次。
【讨论】:
from 子句之后添加一个order by 子句,以您喜欢的任何方式对记录进行排序...它不会影响GroupFlag 的编号。