我有一個數據集,其中包含列Date
,Cat
和QTY
。我想要做的就是添加一個唯一的列,它在進行行計數時只計算唯一的Cat
值。這就是我希望我的結果集的樣子:row_number()Group by?
使用下面的SQL查詢,我能夠使用row_number()
函數來獲取行。
但是,我無法獲得上面描述的獨特列。當我通過OVER
子句添加組時,它不起作用。有沒有人有任何想法,我如何才能使這個獨特的計數欄工作?
SELECT
Date,
ROW_NUMBER() OVER (PARTITION BY Date ORDER By Date, Cat) as ROW,
Cat,
Qty
FROM SOURCE
謝謝,這是朝正確方向邁出的一步。但事實是,我的實際數據集不是由cat訂購的。你知道在這個例子中它是如何工作的嗎? (想象一下,在我的貓列中,DEF出現在ABC之前,但確實DEF值在我的排序中都是連續的,所以你不會在cat列中看到DEF,DEF,ABC,ABC和DEF) – user1582928
@ user1582928 As每個http://msdn.microsoft.com/en-us/library/ms173825.aspx「 確定將DENSE_RANK函數應用於分區中的行的順序」。你總是可以在SELECT的末尾添加ORDER BY。 –
prashanth
@ user1582928,如果你想要,你可以指定一個函數來改變順序,例如:order by decode('DEF',1,'ABC',2,3) –