我有要求,我必须根据返回的行总数为我的查询返回的每条记录提供rownumber。 让我们说每3条记录的rownumber。 对于前。
colA colB colC(rowno)
1 abc 1
2 asd 1
3 asw 1
4 tre 2
5 cfr 2
6 dfr 2
7 sdf 3
我尝试使用row_number()(按照colA的count(*)顺序分区)但是它为所有记录提供了行号。
任何想法都会有所帮助。
答案 0 :(得分:2)
使用一些数学和整数除法规则:
select colA,colB,(ROW_NUMBER() OVER (ORDER BY colA)+2)/3 as colC
from table
两个整数常量是相关的 - 你总是希望内部常量(2
)比应该赋予相同数字(3
)的行数少一个。
答案 1 :(得分:0)
试试这个
SELECT ROW_NUMBER() OVER (Order by [Col]) as ColID FROM [TABLE NAME]
WHERE colC = 3