У меня есть таблица со следующими столбцами:
communication_id
| communication_date
| company_id
| customer_id
| salesperson_id
| medium
| is_incoming
| is_outgoing
| ** communication_text
1012
, где communication_id
- это зерно таблицы, а medium
могут быть значениями, такими как phone
, sms
и т. Д. is_incoming
и is_outgoing
являются столбцами индикатора для направления связи в перспектива продавца. Если продавец отправит сообщение, у нас будет 0 для is_incoming
и 1 для is_outgoing
.
Итак, учитывая customer_id
, заказанный communication_date
, у меня есть канал связи между этим клиентом и его продавцом. Если я вижу, что у продавца было 2 входящих сообщения, а затем было 1 исходящее сообщение с этим клиентом, то наше правило / вывод заключается в том, чтобы пометить это исходящее сообщение как ответ, и так далее, и так далее. По этой логике только is_outgoing
сообщения могут быть ответами. Итак, я думаю, что мне нужно сделать, это построить столбец is_salesperson_reply
, который указывает, было ли сообщение ответом. Я думаю, что было бы также полезно, если бы на поверхности было communication_id
сообщения, на которое они отвечают, как salesperson_replied_to_communication_id
, и отметка времени этого как salesperson_replied_to_at
.
То, что я пытаюсь написать, это запрос на выборку, который выводит сводку по общению с продавцом; Я уже могу создать таблицу, в которой у меня есть каждый продавец и общее количество сообщений, общее количество отправленных и общее количество полученных. Теперь я хотел бы смоделировать количество ответов, которые они сделали, и, возможно, среднее количество времени, которое требуется им, чтобы ответить, когда они это сделают.
У меня есть ощущение, что мне может понадобиться использовать функцию array_agg
или какие-нибудь причудливые case
операторы, но я не уверен, как это сделать. Любая помощь приветствуется!