web-dev-qa-db-ja.com

row_number()グループ化?

DateCat、およびQTYを含むデータセットがあります。私がしたいのは、行カウントを行うときに一意の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
39
user1582928

これが代替ソリューションです。

あなたは猫の注文を心配する必要はありません。次のSQLを使用すると、DateとCatの組み合わせに対して一意の値を取得できます。

SELECT 
   Date,    
   ROW_NUMBER() OVER (PARTITION BY Date, Cat ORDER By Date, Cat) as ROW,
   Cat,
   Qty
FROM SOURCE
39
G.S
DENSE_RANK() OVER (PARTITION BY date ORDER BY cat)
16