У меня есть таблица messages
в postgresql, где каждая запись представляет собой сообщение с полями: id, session_creation_time, customer_id, message
Сначала мне нужно сгруппировать сообщения в пары session_creation_time
и customer_id
, чтобы я мог выяснить, какие сообщения где часть того же сеанса разговора, чтобы я мог сделать что-то вроде:
SELECT *
FROM messages
GROUP BY session_creation_time, customer_id, id
ORDER BY session_creation_time
И после этого мне нужно вернуть все сообщения, сгруппированные по session_creation_time и customer_id, в которых хотя бы одно из этих сообщений соответствует моему оператору message ilike "%myString%"
Есть идеи?
образец данных
-----------------------------------------------------------------------
id |session_creation_time| customer_id | msg_to | msg_from | message |
----|---------------------|-------------|--------|----------|---------|
1 | 2019-10-22 14:43:04 | a | a | me | hello |
----|---------------------|-------------|--------|----------|---------|
2 | 2019-10-22 14:43:04 | a | me | a | hi |
----|---------------------|-------------|--------|----------|---------|
3 | 2019-10-21 14:43:04 | b | me | b |ru there?|
----|---------------------|-------------|--------|----------|---------|
4 | 2019-10-21 14:43:04 | b | b | me | yes |
----|---------------------|-------------|--------|----------|---------|
5 | 2019-10-21 14:43:04 | b | me | b | help pls|
----|---------------------|-------------|--------|----------|---------|
6 | 2019-10-21 14:43:04 | b | b | me |I'll help|
----|---------------------|-------------|--------|----------|---------|
7 | 2019-10-25 14:43:04 | b | me | b |hi its'me|
----|---------------------|-------------|--------|----------|---------|
8 | 2019-10-25 14:43:04 | b | b | me |welcome |
----|---------------------|-------------|--------|----------|---------|
ожидаемый результат
Если мой оператор message ilike '%help%'
Мой запрос должен возвращать сообщения с идентификаторами: 3,4,5,6, поскольку это сообщения от той же пары session_creation_time`` and
customer_id where at least one of the messages has the string
help '' на нем. а остальные сообщения игнорируйте