row_number()分组?

时间:2012-09-20 18:27:07

标签: sql-server tsql unique row-number

我的数据集包含DateCatQTY列。我想要做的是添加一个唯一的列,它只计算行数时唯一的Cat值。这就是我希望我的结果集看起来像:

enter image description here

通过使用下面的SQL查询,我可以使用row_number()函数获取行。

但是,我无法获得上面描述的那个独特的专栏。当我将group by添加到OVER子句时,它不起作用。有没有人知道如何让这个独特的计数列工作?

SELECT 
   Date,    
   ROW_NUMBER() OVER (PARTITION BY Date ORDER By Date, Cat) as ROW,
   Cat,
   Qty
FROM SOURCE

2 个答案:

答案 0 :(得分:37)

这是替代解决方案。

您无需担心Cat的订购。使用以下SQL,您将能够获得日期和时间的唯一值。猫组合。

SELECT 
   Date,    
   ROW_NUMBER() OVER (PARTITION BY Date, Cat ORDER By Date, Cat) as ROW,
   Cat,
   Qty
FROM SOURCE

答案 1 :(得分:15)

DENSE_RANK() OVER (PARTITION BY date ORDER BY cat)