use*_*928 41 t-sql sql-server unique row-number
我有一个包含列的数据集Date,Cat和QTY.我想要做的是添加一个唯一的列,它只Cat在行计数时计算唯一值.这就是我希望我的结果集看起来像:

通过使用下面的SQL查询,我可以使用该row_number()函数获取行.
但是,我无法获得上面描述的那个独特的专栏.当我将group by添加到OVER子句时,它不起作用.有没有人有任何想法,我怎么能让这个独特的计数专栏工作?
SELECT
Date,
ROW_NUMBER() OVER (PARTITION BY Date ORDER By Date, Cat) as ROW,
Cat,
Qty
FROM SOURCE
Run Code Online (Sandbox Code Playgroud)
G.S*_*G.S 41
这是替代解决方案.
您无需担心Cat的订购.使用以下SQL,您将能够获得Date&Cat组合的唯一值.
SELECT
Date,
ROW_NUMBER() OVER (PARTITION BY Date, Cat ORDER By Date, Cat) as ROW,
Cat,
Qty
FROM SOURCE
Run Code Online (Sandbox Code Playgroud)
Nah*_*eul 16
DENSE_RANK() OVER (PARTITION BY date ORDER BY cat)
Run Code Online (Sandbox Code Playgroud)