У меня есть таблица «Счет-фактура»
id integer Primary key
customer_id Integer
total Number (*,2)
Запрос состоит в том, чтобы отобразить все customer_id, итоговый и текущий серийный номер для каждого клиента с псевдонимом «SNO».И записи должны отображаться в порядке возрастания на основе customer_id, а затем по SNO.
Подсказки:
- Аналитическая функция: ROW_NUMBER ()
- Аналитическая статья:query_partition_clause и order_by_clause.
Я написал следующий запрос:
Select customer_id,
total,
ROW_NUMBER( ) OVER (PARTITION BY customer_id ORDER BY customer_id ASC) AS "SNO"
from invoice;
Но результат не удался.Чего мне не хватает?Также подразумевается, что «записи должны отображаться в порядке возрастания на основе customer_id , а затем по SNO ».
Результат, который я получаю, выглядит следующим образом:
CUSTOMER_ID TOTAL SNO
1 70000 1
2 250000 1
2 560000 2
3 200000 1
3 45000 2
4 475000 1
5 500001
5 10000 2
6 600000 1
6 90000 2
Ожидаемый результат:
CUSTOMER_ID TOTAL SNO
1 70000 1
2 250000 1
2 560000 2
3 45000 1
3 200000 2
4 475000 1
5 10000 1
5 50000 2
6 600000 1
6 90000 2
ИТОГО Данные столбца не совпадают.