我的数据集包含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
答案 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)