我只是想知道是否可以在不使用Group By的情况下计算组的唯一行号...
我的数据集如下......
FileSize FileSize(KB/MB)
--------------------------------
0 0.00 KB
0 0.00 KB
36 0.04 KB
39 0.04 KB
425 0.42 KB
435 0.42 KB
435 0.42 KB
1000960 0.95 MB
1001290 0.95 MB
1266831853 1.27 GB
1266831968 1.27 GB
1312708509 1.31 GB
1312711756 1.31 GB
1367911756 1.36 GB
我想按照TabularModel中的FileSize列对FileSize(KB / MB)进行排序所需的数据集输出...
FileSizeRank FileSize FileSize(KB/MB)
-------------------------------------------
1 0 0.00 KB
1 0 0.00 KB
2 36 0.04 KB
2 39 0.04 KB
3 425 0.42 KB
3 435 0.42 KB
3 435 0.42 KB
4 1000960 0.95 MB
4 1001290 0.95 MB
5 1266831853 1.27 GB
5 1266831968 1.27 GB
6 1312708509 1.31 GB
6 1312711756 1.31 GB
7 1367911756 1.36 GB
我试过这个,但没有用
ROW_NUMBER() OVER(PARTITION BY [Filesize(KB/MB)] ORDER BY FileSize) AS FileSizeRank
你需要使用DENSE_RANK
:
SELECT *,DENSE_RANK() OVER( ORDER BY [Filesize(KB/MB)]) AS FileSizeRank
FROM tab
编辑:
为避免可能的ORDER BY
文本问题,我建议使用:
SELECT *,DENSE_RANK() OVER( ORDER BY ROUND([File Size]/1000.0,2)) AS FileSizeRank
FROM tab;