Мне нужно написать запрос Oracle SQL. У меня есть две таблицы продуктов и сообщений. Таблица продуктов выглядит так:
product_id | creation_date | user_id | category_id |
---|---|---|---|
p1 | 2017-03-01 | u1 | c1 |
p2 | 2018-05-23 | u1 | c3 |
p3 | 2019-06-21 | u2 | c1 |
таблица сообщений выглядит так:
message_id | creation_date | product_id | user_from |
---|---|---|---|
m1 | 2018-03-01 | p1 | u2 |
m2 | 2019-08-19 | p1 | u5 |
m3 | 2020-10-10 | p3 | u7 |
Я хочу перечислить все продукты в категории, отсортированные по общему количеству сообщений, а также 5 основных покупателей каждого продукта (пользователи, которые связались с этими продуктами, отсортированные по общему количеству отправленных сообщений)
Пример выходной таблицы:
category_id | product_id | total_messages_for_product | user_id | messages |
---|---|---|---|---|
c1 | p1 | 200 | u1 | 10 |
c1 | p1 | 200 | u2 | 9 |
c1 | p1 | 200 | u3 | 7 |
c1 | p1 | 200 | u4 | 5 |
c1 | p1 | 200 | u5 | 4 |
c1 | p2 | 150 | u7 | 11 |
c1 | p2 | 150 | u8 | 10 |
c1 | p2 | 150 | u9 | 9 |
c1 | p2 | 150 | u10 | 7 |
c1 | p2 | 150 | u4 | 6 |