J'ai un ensemble de données qui contient les colonnes Date
, Cat
et QTY
. Ce que je veux faire, c'est ajouter une colonne unique qui ne compte que les valeurs Cat
uniques lors du décompte des lignes. Voici à quoi je veux que mon jeu de résultats ressemble:
En utilisant la requête SQL ci-dessous, je peux obtenir une ligne en utilisant la fonction row_number()
.
Cependant, je ne peux pas obtenir cette colonne unique que j'ai décrite ci-dessus. Lorsque j'ajoute group by à la clause OVER
, cela ne fonctionne pas. Quelqu'un a-t-il des idées sur la façon de faire fonctionner cette colonne de comptage unique?
SELECT
Date,
ROW_NUMBER() OVER (PARTITION BY Date ORDER By Date, Cat) as ROW,
Cat,
Qty
FROM SOURCE
Voici une solution alternative.
Vous n'avez pas à vous soucier de la commande de Cat. En utilisant le SQL suivant, vous pourrez obtenir des valeurs uniques pour votre combinaison 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)