列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
これが代替ソリューションです。
あなたは猫の注文を心配する必要はありません。次のSQLを使用すると、DateとCatの組み合わせに対して一意の値を取得できます。
SELECT
Date,
ROW_NUMBER() OVER (PARTITION BY Date, Cat ORDER By Date, Cat) as ROW,
Cat,
Qty
FROM SOURCE
DENSE_RANK() OVER (PARTITION BY date ORDER BY cat)