48

我有一个包含 、 和 列的Date数据CatQTY。我想要做的是添加一个唯一列,它只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
4

2 回答 2

49

这是一个解决方案。

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

SELECT 
   Date,    
   ROW_NUMBER() OVER (PARTITION BY Date, Cat ORDER By Date, Cat) as ROW,
   Cat,
   Qty
FROM SOURCE
于 2012-09-21T10:42:05.180 回答
18
DENSE_RANK() OVER (PARTITION BY date ORDER BY cat)
于 2012-09-20T18:35:20.950 回答