У меня есть табличное сообщение со следующей структурой
id - to_number - from_number - message - send_to_podio_time
100 - +16235708320 - +16232992010 - test message1 - 2019-03-07 18:31:12
101 - +16232992010 - +16235708320 - test message2 - 2019-03-07 18:31:15
102 - +16235708786 - +16232992010 - test message3 - 2019-03-07 18:31:16
103 - +16232992010 - +16235708786 - test message4 - 2019-03-07 18:31:18
Мне нужно получить количество потоков разговоров между двумя телефонными номерами Ожидаемый результат
phone_numbers - count
+16235708320:+16232992010 - 1
+16235708786:+16232992010 - 1
Может ли кто-нибудь помочь мне с соответствующим запросом?
@Sachem message1 и message2 - это черно-белые одинаковые номера (одна цепочка сообщений). Например, сообщение3 и сообщение4 являются черно-белыми другими одинаковыми номерами (одна цепочка сообщений). Таким образом, количество должно быть 1
Я не совсем понимаю. Как это «1 поток сообщений», если +16235708320 ответил «сообщением2»? :)
Это разговор. Разговор между одинаковыми телефонными номерами. Я хочу получить каждый разговор отдельно. Это то, что мне было нужно. :(






Пытаться:
SELECT CONCAT_WS(':', from_number, to_number), COUNT(*)
FROM table_name
GROUP BY from_number, to_number;
Однако в результате будут показаны 4 строки, потому что обратный «порядок» между сообщениями 1 и 2 (и аналогично 3 и 4) будет обрабатываться отдельно. Но поскольку вы хотели получить «1» в качестве результата в каждой строке, возможно, это то, что вы искали?
первые 2 ряда одной нитью. Так что это должно считаться как 1. Так следующие 2 ряда
как узнать, что это тот же поток, не имеющий столбца thread_id в таблице?
чтобы достичь того, что вы хотите, вы должны запрашивать числа «от» и «до» отдельно (не конкатенировать), а затем вы можете легко отфильтровать «дубликаты» в цикле. просто проверьте, нет ли пары или перевернутой пары в конечном массиве, и если это так, то не добавляйте ее в него.
но message1 и message2 находятся между одними и теми же номерами. аналогично для сообщений 3 и 4, поэтому ожидаемый результат не должен показывать «2» в обеих строках?