Я хочу сгенерировать номер n-го посещения для посещения каждого покупателя в магазине.
Используя следующий запрос:
select customer_id, store_id, date from visits order by date asc;
Я получаю таблицу как показано:
customer_id | store_id | date
------------------------------------------
1 | 101 | 1st November 2018
2 | 102 | 2nd November 2018
2 | 102 | 3rd November 2018
3 | 103 | 1st November 2018
2 | 102 | 4th November 2018
Я бы хотел отсортировать по дате в порядке возрастания, чтобы добавить столбец nth_visits, например:
customer_id | store_id | date | nth_visit
-------------------------------------------------------
1 | 101 | 1st November 2018 | 1
2 | 102 | 2nd November 2018 | 1
2 | 102 | 3rd November 2018 | 2
3 | 103 | 1st November 2018 | 1
2 | 102 | 4th November 2018 | 3
Есть ли способ добиться этого при выводе в Postgresql? Я пытался использовать вложенный выбор и группирование, но все это выглядело как груша.
Я чувствую, что может быть флаг, который я могу увеличить, но я не смог найти такую вещь, как:
select customer_id, store_id, date, occurance(customer_id, store_id) as nth_visit from visits order by date asc;