Row_number() Группа?
У меня есть набор данных, содержащий столбцы Date
, Cat
и QTY
. Я хочу добавить уникальный столбец, который учитывает только уникальные значения Cat
, когда он подсчитывает количество строк. Это то, что я хочу, чтобы мой результирующий набор выглядел следующим образом:
![enter image description here]()
Используя SQL-запрос ниже, я могу получить строку, используя функцию row_number()
.
Однако я не могу получить тот уникальный столбец, который я изобразил выше. Когда я добавляю группу в предложение OVER
, она не работает. Есть ли у кого-нибудь идеи, как я могу использовать этот уникальный столбец count?
SELECT
Date,
ROW_NUMBER() OVER (PARTITION BY Date ORDER By Date, Cat) as ROW,
Cat,
Qty
FROM SOURCE
Ответы
Ответ 1
Вот альтернативное решение.
Вам не нужно беспокоиться о заказе Cat. Используя следующий SQL, вы сможете получить уникальные значения для комбинации Date и Cat.
SELECT
Date,
ROW_NUMBER() OVER (PARTITION BY Date, Cat ORDER By Date, Cat) as ROW,
Cat,
Qty
FROM SOURCE
Ответ 2
DENSE_RANK() OVER (PARTITION BY date ORDER BY cat)