У меня есть следующий код, например:место функция даты в Oracle SQL
SELECT id, order_day, purchase_id FROM d
customer_id
и purchase_id
являются уникальными. Каждый customer_id
может иметь несколько purchase_id
. Предположим, что каждый сделал не менее 5 заказов.
Теперь я просто хочу вытащить первые 5 идентификаторов покупки каждому клиенту ID (это зависит от самых ранних дат покупок). Я хочу, чтобы результат выглядел так:
id | purchase_id | rank
-------------------------
A | WERFEW43 | 1
A | ERTGDSFV | 3
A | FDGRT45 | 2
A | BRTE4TEW | 4
A | DFGDV | 5
B | DSFSF | 1
B | CF345 | 2
B | SDFSDFSDFS | 4
Я подумал о Рейтинге order_day
, но мои знания не достаточно хорошо, чтобы это осуществить.
Это не работает. Только вернул 5 заказов в общей сложности только на день, а не по id. – LFB
@VDL 'over (раздел по порядку id by order_day)' поможет. И чтобы вернуть только 5 строк, вы должны добавить условие 'WHERE'. См. @dnoeth answer – Tatiana