我有下表
我需要为 Cat2 的每个分组列添加一个唯一的序列号,从 1 开始,但是当 Cat1 更改时它必须重置回 1
我的输出应该是
DENSE_RANK() 用于提供唯一值,例如
Row= DENSE_RANK() OVER ( ORDER BY Cat2)
但我需要它根据另一列 Cat1 重置自身 最佳答案
在 Cat1 上使用 PARTITION BY 子句:
Row = DENSE_RANK() OVER ( PARTITION BY Cat1 ORDER BY Cat2)
PARTITION BY 子句将首先根据您的 Cat1 对您的 DENSE_RANK() 进行分区,然后再对它们进行密集排名,这正是您所需要的。
关于sql-server - 如何重置 DENSE_RANK,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36272838/